C# 控制台输出菱形图案

问题描述

//C#新手写的不好勿喷!Console.WriteLine("请输入一个数?");//这里假设只能输入数字intnumber=Convert.ToInt32(Console.ReadLine());intss=(number/2);boolburz;for(inti=1;i<=number;i++){for(intj=1;j<=number;j++){burz=false;if(Math.Abs(ss)>=j){Console.Write("");burz=true;continue;}if(burz==false){if(number-Math.Abs(ss)<j){Console.Write("");}else{Console.Write("*");}}}Console.WriteLine();ss--;}Console.ReadKey();

解决方案

解决方案二:
输入12根本就不可能产生菱形。
解决方案三:
关键是你的13和12是个什么逻辑意义。有些人抛出一个静态图形,也没有文字描述,就让别人自己去猜测逻辑意义,这些人写出来的东西总是跟羊拉屎一样难以连贯理解。按照你的程序,那么13就是”一共有多少行“。而这个行数如若是偶数,就绝对不能产生菱形。只有奇数行才可能产生菱形。如果换一种理解,或许可以产生菱形://C#新手写的不好勿喷!Console.WriteLine("请输入一个数?");//这里假设只能输入数字intnumber=Convert.ToInt32(Console.ReadLine())/2+1;for(inti=1;i<=number;i++){Console.Write(newstring('',number-i));Console.WriteLine(newstring('*',i*2-1));}for(inti=number-1;i>=1;i--){Console.Write(newstring('',number-i));Console.WriteLine(newstring('*',i*2-1));}

因此我们绝对不允许那些只喜欢抛出一个图片或者代码,而懒于做逻辑定义解说的人。
解决方案四:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){inta,i;//a是总行数,i用来控制行数小于总行数,j用来控制每行的*和空格的输出。Console.Write("请输入菱形总行数:");a=Convert.ToInt32(Console.ReadLine());if(a%2==0){Console.Write("输入错误,请输入奇数:");a=Convert.ToInt32(Console.ReadLine());}else{for(i=1;i<=a;i++){if(i<=(a+1)/2){for(intj=0;j<(a+1)/2-i;j++){Console.Write("");}for(intj=0;j<i;j++){Console.Write("*");}Console.WriteLine();}else{for(intj=0;j<i-(a+1)/2;j++){Console.Write("");}for(intj=0;j<a+1-i;j++){Console.Write("*");}Console.WriteLine();}}Console.ReadLine();}}}}

借用一段代码,偶数是不可以哦,必须是奇数。
解决方案五:
给你个提示:strings=newstring('*',5);//s="*****";看看你能不能写出更简化的程序。
解决方案六:
绘制多边形图案privatevoidbutton1_Click(objectsender,EventArgse){Graphicsghs=this.CreateGraphics();//实例化Graphics类PenmyPen=newPen(Color.Black,3);//实例化Pen类Pointpoint1=newPoint(80,20);//实例化Point类,表示第1个点Pointpoint2=newPoint(40,50);//实例化Point类,表示第2个点Pointpoint3=newPoint(80,80);//实例化Point类,表示第3个点Pointpoint4=newPoint(160,80);//实例化Point类,表示第4个点Pointpoint5=newPoint(200,50);//实例化Point类,表示第5个点Pointpoint6=newPoint(160,20);//实例化Point类,表示第6个点Point[]myPoints={point1,point2,point3,point4,point5,point6};//创建Point结构数组ghs.DrawPolygon(myPen,myPoints);//调用Graphics对象的DrawPolygon方法绘制一个多边形}
解决方案七:

解决方案八:
菱形obj=new菱形(13);obj.WriteToConsole();
解决方案九:

解决方案十:
intsize=7;intlimit=(size-1)/2;for(inti=0;i<size;i++){string_temp=(newstring('',Math.Abs(limit))+newstring('*',size-Math.Abs(limit)*2));Console.WriteLine(_temp);limit--;}Console.ReadKey();

够精简不?
解决方案十一:

解决方案十二:
偶数似乎只是对上形状而已,没什么意思
解决方案十三:
Console.WriteLine("请输入一个数字");intnum=Convert.ToInt32(Console.ReadLine());intsum=num*2-1;for(inti=1;i<num+1;i++){stringx=newstring('',sum-i);strings=newstring('*',i*2-1);Console.WriteLine(x+s);}Console.ReadKey();//输出一个三角,菱形再反向输出一遍好啦

时间: 2025-01-03 07:45:20

C# 控制台输出菱形图案的相关文章

Windows下的控制台输出

控制台输出就象dos下的输出,可不是图形界面.象ping/ipconfig/ftp等命令都是这类程序. 回忆过去,在dos下进行文件操作时,常用到"文件把柄"的概念,使用文件把柄操作时,非常方便,操作时,只要知道把柄号就可以,而不用操心文件的位置.dos下,设备也都有自己的专用把柄,这些把柄是:0000H 标准输入设备 (stdin)0001H 标准输出设备 (stdout)0002H 标准错误设备 (stderr)0003H 标准辅助设备 (stdaux)0004H 标准打印设备 (

tomcat控制台输出信息时会卡住的原因

在window2003 系统下运行tomcat5.5 当运行时代码中有控制台输出的语句,如System.out.println 或 e.printStackTrace() 时,当前线程会卡住,而且控制台没有任何输出,只要在运行的服务器上敲下空格或回车,才回有输出,该线程才恢复运行. 原因: 1 在控制台左上角鼠标右键,选属性 2 看图上的解释,去掉那个快速编辑 3 这个你根据情况自己决定吧.我一般选下面那个

python在控制台输出进度条的方法

  本文实例讲述了python在控制台输出进度条的方法.分享给大家供大家参考.具体实现方法如下: 进度条效果如下所示: ? 1 2 |#############################---------------------| 59 percent done 代码如下: ? 1 2 3 4 5 6 7 8 9 class ProgressBar(): def __init__(self, width=50): self.pointer = 0 self.width = width de

PowerShell在控制台输出特殊符号的方法

  这篇文章主要介绍了PowerShell在控制台输出特殊符号的方法,本文给出了实现代码和输出图例,本文代码输出了一个绿色三角形,需要的朋友可以参考下 您知道吗,PowerShell控制台也可以输出特殊的图标?而你需要做的只是,设置控制台的字体为TrueType 字体,比如"Consolas". 要显示特殊字符,请使用十进制或十六进制字符代码,例如: ? 1 2 [Char]8730 [Char]0x25BA 或着打开系统上内置的应用程序 "CharacterMap"

junit测试报错,求大神救命,控制台输出如下,

问题描述 junit测试报错,求大神救命,控制台输出如下, 0 2015-07-09 09:04:52182 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - #org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:316)# -

cmd-C#隐式运行CMD命令,并获取控制台输出

问题描述 C#隐式运行CMD命令,并获取控制台输出 正在用C#做一个简易的使用mingw的IDE程序,使用cmd.exe中通过gcc命令进行编译链接等操作,想要及时获取 错误以及警告信息 进行输出. 开始时参照 C#程序调用cmd.exe执行命令 代码如下: using System.Diagnostics; public class CmdHelper { private static string CmdPath = @"C:WindowsSystem32cmd.exe"; ///

java-Java格式化控制台输出的问题

问题描述 Java格式化控制台输出的问题 java格式化控制台输出中什么叫自动增加宽度?如%5d,如果该条目的位数大于5,则自动增加宽度,这是什么意思? 解决方案 这种格式是指在输出不足 5 位时,会自动增加宽度.如果大于 5,就按实际输出. 解决方案二: 比如说1,输出00001 11输出00011 123输出00123 12345输出12345 那么123456输出什么呢?还是123456.这就叫自动增加宽度. 解决方案三: 比如说1,输出00001 11输出00011 123输出00123

java-junit 4 测试报错,求大神救命,控制台输出如下

问题描述 junit 4 测试报错,求大神救命,控制台输出如下 求大神解救! 解决方案 jar版本不对 ,导致没找到对应的方法.或者导入的jar不对

log4j.xml-log4j使用问题:日志能在控制台输出,不能输出到制定文件

问题描述 log4j使用问题:日志能在控制台输出,不能输出到制定文件 1.在配置使用log4j时,发生错误,只能把日志输出在控制台,不能把日志写入指定文件.1.1 web.xml中与log4j.xml有关的内容. 1.2 log4j.xml配置(我没有使用log4j.properties,感觉log4j.xml的作用更大) 1.3 测试类Log4jController.java. 1.4 运行接口后控制台输出结果. 我用的是ubuntu系统,所以没有办法在路径上写"C:/..."这样的