为了账号安全,请及时绑定邮箱和手机立即绑定

如何打印下面的星形图案

如何打印下面的星形图案

C#
HUWWW 2023-07-22 16:14:35
我无法得到这个答案:***************多维数组,嵌套 ( 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 颗星
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

这里你需要了解背后的模式*。


你的程序中的星形模式是,


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

IE


单行中的星星数量 = 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();  

}


查看完整回答
反对 回复 2023-07-22
?
慕少森

TA贡献2019条经验 获得超9个赞

由于这不是关于数组索引或地址计算,而是关于实际的可数对象(星),所以我认为基于 1 的索引在这里更有意义。


此外,星星的数量应该减少,因此倒数也更有意义:


for (int numStars = 5; numStars >= 1; --numStars)

{

    for (int star = 1; star <= numStars; ++star)

        Console.Write("*");

    Console.WriteLine();

}


查看完整回答
反对 回复 2023-07-22
  • 2 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信