如何在c#控制台应用程序上显示出三角形和长方形以及正方形

如题,想要编可以由用户选择输出哪个形状,用户给出某个形状的大小,如正方形的边长、长方形的长和宽、三角形的高度或边长(需有一定的长度限制),用户选择用什么符号来画,默认为“... 如题,想要编可以由用户选择输出哪个形状,用户给出某个形状的大小,如正方形的边长、长方形的长和宽、三角形的高度或边长(需有一定的长度限制)
,用户选择用什么符号来画,默认为“*”。
如果能做出让 用户选择输出实心还是空心图形 更好。

有劳高手了!!!
就是那个直角三角形要怎么输出
展开
 我来答
定复2d
2009-03-14 · TA获得超过3196个赞
知道大有可为答主
回答量:2052
采纳率:0%
帮助的人:1936万
展开全部
这有一个输出正三角形的···
public static void Main(string[] args)
{
int w=0;
char c;
Console.WriteLine("输入正三角形的边长:");
try
{
w = Int32.Parse(Console.ReadLine());
}
catch (FormatException fe)
{
Console.WriteLine(fe.Message);
}
Console.WriteLine("是否实心?(Y/N)");
try
{
c = (char)Console.Read();
if (c != 'Y' && c != 'y' && c != 'N' && c != 'n')
throw new FormatException("输入格式错误");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return;
}
for (int i = 0; i < w; i++)
{
for (int j = 0; j <= i; j++)
{
if ((c == 'N' || c == 'n')&&i!=0&&i!=w-1)
{
Console.Write("*");
for(int k=j+1;k<i;k++)
Console.Write(" ");
Console.Write("*");
break;
}
else
Console.Write("*");
}
Console.WriteLine();
}

}
自己参考下吧 我前面刚写的

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
class Program
{
public static void Main()
{
while (true)
{
Console.WriteLine("输入图形代号:");
Console.WriteLine("1.正方形 2.长方形 3.三角形 其他.退出");
int i = Int32.Parse(Console.ReadLine());
switch (i)
{
case 1:
Square();
break;
case 2:
Rectangle();
break;
case 3:
Triangle();
break;
default:
return;
}
}
}

static void Square()
{
Console.Write("请输入正方形边长:");
int bc = Int32.Parse(Console.ReadLine());

Console.Write("是否实心(Y/N):");
string sx = Console.ReadLine();

Console.Write("选择什么符号表示(回车则为*):");
string fh = Console.ReadLine();
if (fh == "")
fh = "*";

for (int i = 0; i < bc; i++)
{
for (int j = 0; j < bc; j++)
{
if (sx == "Y" || sx == "y")
Console.Write(" " + fh);
if (sx == "N" || sx == "n")
{
if (i == 0 || i == bc - 1 || j == 0 || j == bc - 1)
Console.Write(" " + fh);
else
Console.Write(" ");
}
}
Console.WriteLine();
}
}

static void Triangle()
{
Console.Write("请输入三角形边长:");
int bc = Int32.Parse(Console.ReadLine());

Console.Write("是否实心(Y/N):");
string sx = Console.ReadLine();

Console.Write("选择什么符号表示(回车则为*):");
string fh = Console.ReadLine();
if (fh == "")
fh = "*";

if (sx == "Y" || sx == "y")
{
for (int i = 0; i < bc; i++)
{
for (int j = 0; j <= bc + i; j++)
{
if (bc % 2 == 0)
{
if ((i + j) % 2 == 0 && i + j >= bc)
Console.Write("*");
else
Console.Write(" ");
}
else
{
if ((i + j) % 2 == 1 && i + j >= bc)
Console.Write("*");
else
Console.Write(" ");
}
}
Console.WriteLine();
}
}

if (sx == "N" || sx == "n")
{
for (int l = 0; l < bc; l++)
{
for (int k = 0; k < bc + l; k++)
{
if (k + l == bc - 1 || k - l == bc - 1 || l == bc - 1 && k % 2 == 0)
Console.Write(fh);
else
Console.Write(" ");
}
Console.WriteLine();
}
}
}

static void Rectangle()
{
Console.Write("请输入长方形宽:");
int bc = Int32.Parse(Console.ReadLine());

Console.Write("请输入长方形长:");
int kd = Int32.Parse(Console.ReadLine());

Console.Write("是否实心(Y/N):");
string sx = Console.ReadLine();

Console.Write("选择什么符号表示(回车则为*):");
string fh = Console.ReadLine();
if (fh == "")
fh = "*";

for (int i = 0; i < bc; i++)
{
for (int j = 0; j < kd; j++)
{
if (sx == "Y" || sx == "y")
Console.Write(" " + fh);
if (sx == "N" || sx == "n")
{
if (i == 0 || i == bc - 1 || j == 0 || j == kd - 1)
Console.Write(" " + fh);
else
Console.Write(" ");
}
}
Console.WriteLine();
}
}

}
}

参考资料: http://bbs.bccn.net/thread-236545-1-1.html

百度网友88ad0e2
2009-03-12 · TA获得超过158个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:209万
展开全部
这问题多好回答啊! 你定义一个方法! 这方法含有两个参数!
第一个参数控制,要输出图形的行! 另一个控制要输出的列!
两个for循环就实现输出图形了! 我给你举个三角形例子! 参数a,b
static void Main(string[] args)
{
int a = 5, b = 5;
string tu="*";
for (int i = 1;i<=a; i++)
{
for (int k =b-1; k >= i; k--)
{
Console.Write(" ");
}
for (int j = 1; j <= i; j++)
{
Console.Write(tu+" ");

}
Console.WriteLine();

}
Console.ReadLine();

}
空心实心也好做啊! 你把那输出的那字符串变量换成空心或实心就行了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ljaxf1314
2009-03-14 · 超过23用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:63.9万
展开全部
可以用循环嵌套

//直角三角行
int chagn =5;
for(int i=1;i<=5;i++)
{
for(int j=i ; j>=1; j--){
Console.Write("*");

}
Console.WriteLine(); //换行
}
这样可以打印一个长是5个*的直角三角行
其他的形状也基本上都是一样的道理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来元彤8O
2009-03-12 · TA获得超过1452个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:260万
展开全部
那就输出个三角形把
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication7
{
class Program
{
static void Main()
{
for(int i=0;i<20;i++)
{
if(i<10)
for(int j=0;j<i;j++)
Console.Write("*");
else
for(int j=0;j<20-i;j++)
Console.Write("*");
Console.Write("\n");
}
Console.ReadLine();
return;
}

}

}

自己琢磨就明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式