实际上这是 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...
我不知道我的代码有什么问题。任何人都可以帮忙吗。
答案 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;
}