首页 > 解决方案 > C#,Windows 应用程序,绘制一个边为 N 的正方形

问题描述

对于学校练习,我必须在 C# 中制作一个 Windows 应用程序,该应用程序接受一个输入数字并在 N 侧绘制一个 X 的正方形。我必须使用循环来完成它,并且我不能使用任何预设命令。(例如我不能使用的 math.pow)(我已经包含了作业的图片。)我已经在控制台应用程序中对该程序进行了模式化,并且它运行良好。我认为我非常接近解决它,但无法弄清楚最后一步是什么。我很想知道我缺少什么以及我应该如何解决这个问题。

看作业

这是我现在的代码:

            int n;
        n = int.Parse(txt_input.Text);

        //upper part
        for (int i = 0; i < n; i++)  
        {
            lbl_output.Text = "X";
            lbl_output.Text = "\n";

        }
        //middel part
        for (int i = 0; i < n - 2; i++)
        {
            lbl_output.Text = "X";
            for (int j = 0; j < n - 2; j++) lbl_output.Text = " ";
            lbl_output.Text = "X";
            lbl_output.Text = "\n";
        }

        //upper part
        for (int i = 0; i < n; i++)  
        {
            lbl_output.Text = "X";
            lbl_output.Text = "\n";
        }

标签: c#loops

解决方案


尝试这个:

int n = int.Parse(txt_input.Text);

var sb = new StringBuilder();
for (int j = 0; j < n; j++)
{
    sb.Append('X');
}
sb.AppendLine();
for (int i = 0; i < n - 2; i++)
{
    sb.Append('X');
    for (int j = 0; j < n - 2; j++)
    {
        sb.Append(' ');
    }
    sb.Append('X');
    sb.AppendLine();
}
for (int j = 0; j < n; j++)
{
    sb.Append('X');
}

lbl_output.Text = sb.ToString();

推荐阅读