C#,Windows应用程序,画一个边为N的正方形
在学校的实践中,我必须用C#制作一个windows应用程序,它接受一个输入数字,并用N边画一个X的平方。我必须用循环来做,我不能使用任何预设命令。(例如,math.pow我不能使用)(我已经包含了作业的图片。)我已经在控制台应用程序中设置了这个程序的模式,在那里它工作得很好。 我想我很快就能解决这个问题了,但我不知道最后一步是什么。我很想知道我遗漏了什么,以及我应该如何解决这个问题 这是我现在的代码:C#,Windows应用程序,画一个边为N的正方形,c#,loops,C#,Loops,在学校的实践中,我必须用C#制作一个windows应用程序,它接受一个输入数字,并用N边画一个X的平方。我必须用循环来做,我不能使用任何预设命令。(例如,math.pow我不能使用)(我已经包含了作业的图片。)我已经在控制台应用程序中设置了这个程序的模式,在那里它工作得很好。 我想我很快就能解决这个问题了,但我不知道最后一步是什么。我很想知道我遗漏了什么,以及我应该如何解决这个问题 这是我现在的代码: int n; n = int.Parse(txt_i
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";
}
intn;
n=int.Parse(txt_input.Text);
//上部
对于(int i=0;i
试试这个:
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();
int n=int.Parse(txt\u input.Text);
var sb=新的StringBuilder();
对于(int j=0;j
试试这个
int 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";
}
int n=int.Parse(txt\u input.Text);
//上部
对于(int i=0;i
您忘记使用+=了,它将用前面指定的文本追加文本。代码中还有一些不必要的新行。需要附加到字符串中。有几种方法可以做到这一点。这些“+=”应该可以正常工作是variable=variable+newValue的缩写
int n = int.Parse(txt_input.Text);
string output = "";
for(int x = 0; x < n; x++) //rows
{
if (x == 0 || x == n-1) //first / last row all x
for(int y = 0; y < n; y++)
{
output += "x";
}
else //other rows
for(int y = 0; y < n; y++)
{
output += (y == 0 || y == n - 1) ? "x" : " "; //if first or last column "X" else " "
}
output += "\n"; //at the end of each row a return
}
lbl_output.Text = output;
int n=int.Parse(txt\u input.Text);
字符串输出=”;
对于(int x=0;x
您可以在这里的浏览器中看到它的运行:使用两个循环。一个表示正方形的宽度,一个表示正方形的高度 尝试一下并替换txt_输入控件中的参数。(只需在代码中放置所需的函数(例如,单击按钮),而不是表单加载
private void Form1_Load(object sender, EventArgs e)
{
lblOutput.Text = GenerateSquare(5);
}
private string GenerateSquare(int n)
{
string square = "";
for (int w = 0; w < n; w++)
{
for (int h = 0; h < n; h++)
{
// top or bottom line
if (w == 0 || w == n - 1)
{
square += "x";
}
else // sides
{
if (h == 0 || h == n - 1)
{
square += "x";
}
else square += " ";
}
// change line
if (h == n - 1)
square += "\n";
}
}
return square;
}
private void Form1\u加载(对象发送方,事件参数e)
{
lblOutput.Text=GenerateSquare(5);
}
专用字符串生成方(int n)
{
弦方=”;
对于(int w=0;w
首先生成字符串。然后设置Text属性。使用+=运算符。每次都为lbl\u输出指定一个新值。Text
。您需要与lbl\u output.Text=lbl\u output.Text+“Whatever”
或lbl\u output.Text+=“Whatever”连接
。两者都做相同的事情,只是使用不同的方式。好的,但OP不允许使用内置函数,如PadRight
。显然,他必须学习如何创建自己的算法以及如何使用循环等。当然。我可以包括一个“循环”早上的版本。现在对我来说提供替代方案已经太迟了。@OlivierJacot Descombes-Done。