我仔细检查了代码中的' for'循环问题在这里。我检查了我的分号等,但仍然无法弄清楚为什么我的循环只循环一次。
代码如下所示,谢谢。
#include <stdio.h>
#include <cs50.h>
int main(void)
{
printf("Enter Height: ");
int height = GetInt();
int i;
int count = 1;
for(i=height; i>0; i--)
{
for(i=height-1;i>0;i--)
{
printf(" ");
}
for(i=count;i>0;i--)
{
printf("#");
}
printf(" ");
for(i=count;i>0;i--)
{
printf("#");
}
count++;
printf("\n");
}
}
答案 0 :(得分:2)
你在内部循环中使用相同的迭代器,而它在外部(主要)循环中使用。
只需使用一个名为j
的整数(当然早先声明它)并在内部使用它。
答案 1 :(得分:0)
您在内循环中使用i
。这导致了问题,因为内部循环将使它成为0
。因此,在第一次迭代条件之后,外部循环将停止循环。
在内循环中使用其他变量来克服此问题。 像这样:
#include <stdio.h>
int main(void)
{
int height;
int i,j;
int count = 1;
printf("Enter Height: ");
scanf("%d",&height);
for(i=height; i>0; i--)
{
for(j=height-1;j>0;j--)
{
printf(" ");
}
for(j=count;j>0;j--)
{
printf("#");
}
printf(" ");
for(j=count;j>0;j--)
{
printf("#");
}
count++;
printf("\n");
}
}