如何在星形图案下打印

时间:2019-07-27 07:15:52

标签: c#

我找不到这个答案:

*****
****
***
**
*

嵌套的多维数组(do..whilewhilefor

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个

2 个答案:

答案 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();
}