我找不到这个答案:
*****
****
***
**
*
嵌套的多维数组(do..while
,while
,for
)
char[,] stars = new char[5, 3];
for (int i = 0; i < 5; i++)
{
for(int x=0;x<3;x++)
{
stars[i,x]=char.Parse("*");
Console.Write(stars[i, x]);
我想获得5个“ *”星,然后在新行中获得4个,然后在新行中获得3个,然后在新行中获得1个
答案 0 :(得分:1)
这里您需要了解*
后面的模式。
星型是
0st Line : 5 starts //Considering starting index is 0
1st Line : 4 starts // starts = n starts - Line no. where n = 5
2nd Line : 3 starts
3rd Line : 2 starts
4th Line : 1 starts
即
单行中的星数= n开始-行号// 其中n = 5
所以您的代码看起来像
int n = 5;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i; j++)
{ //^^^^^ n - i is key behind this * pattern
Console.Write("*");
}
Console.WriteLine();
}
答案 1 :(得分:0)
由于这与数组索引或地址计算无关,而与实际可数对象(星号)有关,因此我觉得从1开始的索引在这里更有意义。
另外,星星的数量应该减少,所以倒数也更有意义:
for (int numStars = 5; numStars >= 1; --numStars)
{
for (int star = 1; star <= numStars; ++star)
Console.Write("*");
Console.WriteLine();
}