C中用于重复的嵌套for/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>

我的目标是打印一个具有用户定义变量宽度/高度的立方体。为什么嵌套在while循环中的for循环可以实现这一点,而while循环中的while循环(使用不同的计数变量)却不能实现这一点


对于您的问题,第二个示例没有打印块,因为您未能重置
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
##########
##########
##########
##########
##########
##########
##########
##########
##########
##########