c# home works 无法解决

c# home works can't solve

我必须编写要求用户输入数字的控制台程序,然后该程序必须使星号 (*) 的平方等于用户输入的数字。

Console.WriteLine("enter number and press ENTER"); 
int userNumber = int.Parse(Console.ReadLine()); 
int rowNumber = 0; 
int lineNumber = 0; 
int counter = 0; 
while(counter < userNumber) { 
    Console.Write("*"); 
        while(lineNumber < userNumber) { 
            Console.WriteLine("*"); 
            lineNumber++; 
        }
     counter++; 
 } 
 Console.WriteLine();

示例:

user input :5
*****
*   *
*   *
*   *
*****

您可以执行以下操作:

代码说明:

正方形是由2条等边组成的,所以为了用*画正方形,你会把它想象成一个矩阵

你需要一个循环来绘制行和另一个循环来绘制列,并且两个循环都有上限,即用户输入的数字。

绘图规则是这样的,如果我在第一行或最后一行,或者在第一列或最后一列,我会加星号,所以通过解决这个问题,我使用了 if 语句 ( i==0 | | i== number-1 || j==0 || j== number -1) 其中i为行j为列,如果不满足这个条件,打印space

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Please enter a number:");
        var number=Convert.ToInt32(Console.ReadLine());
        for(int i=0; i < number; i++)
        {           
            for(int j=0; j < number; j++)
            {           
                if(i==0 || i == number-1 || j==0 || j == number-1)
                    Console.Write("*"); 
                else
                    Console.Write(" ");
            }
            Console.Write("\n");
        }
    }
}

这里是工作 DEMO

希望对您有所帮助