C中用于重复的嵌套for/while循环
我的目标是打印一个具有用户定义变量宽度/高度的立方体。为什么嵌套在while循环中的for循环可以实现这一点,而while循环中的while循环(使用不同的计数变量)却不能实现这一点C中用于重复的嵌套for/while循环,c,for-loop,while-loop,C,For Loop,While Loop,我的目标是打印一个具有用户定义变量宽度/高度的立方体。为什么嵌套在while循环中的for循环可以实现这一点,而while循环中的while循环(使用不同的计数变量)却不能实现这一点 对于您的问题,第二个示例没有打印块,因为您未能重置y=0输出一行字符后。如果与for循环的用法相比,每次调用内部循环时,它都以y==0开始。在while循环实现中,y永远不会重置 您的代码的完整实现,必要时重置y将是: #include <stdio.h> #include <cs50.h>
对于您的问题,第二个示例没有打印块,因为您未能重置
y=0代码>输出一行字符后。如果与for
循环的用法相比,每次调用内部循环时,它都以y==0开始。在while
循环实现中,y
永远不会重置
您的代码的完整实现,必要时重置y
将是:
#include <stdio.h>
#include <cs50.h>
void block (void) {
int w = get_int ("What would you like the width/height to be: "),
x = 0,
y = 0;
while (x++ < w) {
while (y++ < w)
putchar ('#');
putchar ('\n');
y = 0;
}
}
int main (void) {
block();
}
(注意:如果您真的想让事情看起来“方形”,请将putchar('#');
替换为字符串“#”
和fputs(“#”,stdout);
)
此外,请不要张贴代码图片,而是将您的代码复制并粘贴到问题中,以4-空格缩进,使其格式为代码(或在上方和下方加上3个回勾)
如果您有问题,请告诉我。哪里是y
重置为0
?可能在x++之后代码>添加一个y=0代码>?对于单个字符的输出,使用putchar('#')代码>或putchar('\n')
您需要从x
循环中删除printf(“#”)
)如果您将代码作为文本编辑到问题中,您的代码将占用更少的空间,更易于阅读,并且对屏幕阅读器更友好。无法查看问题,我无法查看图像,为什么我们接受此类问题?
$ ./bin/square_while_cs50
What would you like the width/height to be: 5
#####
#####
#####
#####
#####
$ ./bin/square_while_cs50
What would you like the width/height to be: 10
##########
##########
##########
##########
##########
##########
##########
##########
##########
##########