鉴于输入,我想打印一个像这样的正方形:
Enter number: 5
#####
#####
#####
#####
#####
我的尝试:
int n;
int col=0;
int row=0;
//user input blah blah
while (col < n) {
while (row < n) {
printf("#");
row++;
}
col++;
printf("\n");
}
但它并没有打印我所期待的......有人能解决这个问题吗?
编辑:实际输出如下(后跟4 \ n个字符,SO似乎没有显示)。
#####
答案 0 :(得分:3)
while (col < n) {
while (row < n) {
printf("#");
row++;
}
col++;
printf("\n");
row = 0; // <<< THIS HELPS
}
答案 1 :(得分:2)
typo.pl's answer解决了眼前的问题,但我想指出一些事情:
这是for
循环的循环控制结构。初始化和增量被打包在循环控件中,而不是分散在你(或其他人)决定放置它的地方。
您已切换row
控件和col
控件的逻辑。这没关系,因为每个都有相同的数量。但是,当需要添加矩形支持时,它会给某人造成一些混乱。如果它是家庭作业,那可能意味着几个点。
所以:
for (row = 0; row < n; ++row) {
for (col = 0; col < n; ++col) {
printf("#");
}
printf("\n");
}
答案 2 :(得分:1)
您需要在第一个while循环后重置row
,否则它已经是n
。
答案 3 :(得分:0)
以下是打印square pattern in C的代码,其中包含&#34;#&#34;
i=1;
while(i<=n)
{
j=1;
while(j<=n)
{
printf("#");
j++;
}
printf("\n");
i++;
}
答案 4 :(得分:0)
为什么不简单?数学表达式通常比控件更精确。
In [1]: n = 5
In [2]: s = ('#'*n+'\n')*n
In [3]: print(s)
#####
#####
#####
#####
#####