什么它不打印哈希?

时间:2020-12-18 19:23:24

标签: c for-loop nested-loops cs50

实际上这是 cs50 课程第一周的测验。我以为我写的代码正确!

#include <stdio.h>
#include <cs50.h>

int main(void)
{
    int n;
    n = get_int("Enter a number: ");

    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            printf("#");
        }
        printf("/n");
    }};

};

输出应该是:

#
##
###
####
and so on...

我不知道我的代码有什么问题。任何人都可以帮忙吗。

2 个答案:

答案 0 :(得分:0)

您的内部循环需要为每个 i 循环 i 次。

for (int i = 0; i < n; i++) {
   for (int j = 0; j <= i; j++) {
      printf("#");
   }
   printf("\n");
}

答案 1 :(得分:0)

一些注意事项:

  • ; 不需要结束 {...} 子句

  • 它不是 /n,它是 \n 换行符

  • int main(void) 需要 return 语句

  • 声明:

    for(int j = 0; j < n; j++){

应该是:

for(int j = 0; j <= i; j++){

把它们放在一起

(已编辑以解决评论中的问题。)

int main(void)
{
    int n = 0;//initialize n to zero (< 1)
    while(n < 1 || n > 8)//stay in while loop until criteria is met
    {
        n = get_int("Enter a number between 1 and 8: ");
    }

    for(int i = 0; i < n; i++){
        for(int j = 0; j <= i; j++){//n does not change, i does
            printf("#");
        }
        printf("\n");
    }
    return 0;
}