在c#中创建一个平行四边形

本文关键字:一个 平行四边形 创建 | 更新日期: 2023-09-27 18:27:49

我的目标是制作一个带有"do-while"循环的平行四边形。它需要像用户所说的那样长和宽
Baisically如果用户说边应该是5,结果必须是这样的:
*****
****
********
**

我想到的是这个代码,它将不幸地给我所需要的所有星星中的第一排。

        Console.Write("How long should the side of this parallelogram be? ");
        string input = Console.ReadLine();
        int side = Convert.ToInt32(input);
        int j = 0;
        int l = 0; 
        do
        {
        if (j < side){
        Console.Write("*");
            j++;
        }
        if (j >= side){
        Console.Write("'n");
          l++;
        }
        }
       while (l < side) ;

        Console.ReadKey();

我相信这是一个相当简单的问题,但我是一个大时代的程序员新手,我不知道还能尝试什么。任何帮助都将不胜感激。

在c#中创建一个平行四边形

实现2D结构最容易理解的方法是使用2个嵌套循环。一个循环创建该行的每个*,另一个循环重复这些行。

为此,我发现这比do/while循环更可读。

for (int j = 0; j < side; j++)
{
    for (int i = 0; i < side; i++)
    {
        Console.Write("*");
    }
    Console.Write("'n");
}

顺便说一句,这是一个正方形。


以下是一个利用string构造函数过载的较短版本:

string row = new string('*', side); //create a string containing 'side' repetitions of '*'
for (int i = 0; i < side; i++)
{
    Console.WriteLine(row); //WriteLine will add the ''n' for you.
}
int side = Convert.ToInt32(input);
int j = 0;
int l = 0; 
do
{
  do 
  {
    Console.Write("*");
    j++;    
  }while(j< side);
j = 0;
Console.Write("'n");  
l++;
}while(l < side);

完成一行后,必须重置i变量:

            int i = 0, current_line = 0;
            do
            {
                if (i < side)
                {
                    Console.Write("*");
                    i++;
                }
                else
                {
                    Console.Write("'n");
                    i = 0;
                    current_line++;
                }
            } while (current_line < side);

作为一个小小的通知,那是一个正方形;)