在C#中创建三角形有很多例子 但是现在我需要一个空心的,所以在C或C ++中有很多例子,但我需要一个在C#控制台,有些机构可以给我一些例子
* * * * * * * * * * * * * * * * * * *
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 5 - i; j > 0; j--)
Console.Write(" ");
for (j = 0; j <= 2 * i; j++)
Console.Write("*");
Console.WriteLine();
}
* * * * * * * * * * * * *
答案 0 :(得分:0)
这可以......但如果该值大于单行上的可打印值,则会进入下一行。没有换行的最大可能值是40.直到40它在我的系统中运行良好且良好。对于较大的值,您必须增加命令提示符的宽度。可以使用命令或通过更改命令提示符属性中的宽度来完成。
int i, j,n=5;
for (i = 0; i < n; i++)
{
for (j = n - i; j > 0; j--)
Console.Write(" ");
for (j = 0; j <= 2 * i; j++)
{
if (j < 2 * i && j > 0&&i!=(n-1))
Console.Write(" ");
else
Console.Write("*");
}
Console.WriteLine();
}
答案 1 :(得分:0)
试试这个:
void Main()
{
Int32 totalLines = 9;
for (Int32 i = 0; i <= totalLines; ++i)
Console.WriteLine(Line(i, totalLines));
}
String Line(Int32 i, Int32 totalLines)
{
Int32 charCount = 2 * totalLines + 1;
Int32 center = charCount / 2;
// Last line is filled completely
if (i == totalLines) return new String(Enumerable.Repeat('*', charCount).ToArray());
Char[] chars = Enumerable.Repeat(' ', charCount).ToArray();
chars[center-i] = '*';
chars[center+i] = '*';
return new String(chars);
}
这只适用于等宽字体。