C';对于';循环只循环一次
我在这里搜索了“for”循环问题的代码。我检查了分号等,但仍然不明白为什么我的循环只循环了一次 代码如下所示,谢谢C';对于';循环只循环一次,c,cs50,C,Cs50,我在这里搜索了“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--)
#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");
}
}
#包括
#包括
内部主(空)
{
printf(“输入高度:”);
int height=GetInt();
int i;
整数计数=1;
对于(i=高度;i>0;i--)
{
对于(i=height-1;i>0;i--)
{
printf(“”);
}
对于(i=count;i>0;i--)
{
printf(“#”);
}
printf(“”);
对于(i=count;i>0;i--)
{
printf(“#”);
}
计数++;
printf(“\n”);
}
}
在内部循环中使用相同的迭代器,而在外部(主)循环中使用相同的迭代器
只需使用一个名为
j
(当然要在前面声明)的整数,并在内部循环中使用它。您在内部循环中使用的是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");
}
}
#包括
内部主(空)
{
内部高度;
int i,j;
整数计数=1;
printf(“输入高度:”);
扫描频率(“%d”和高度);
对于(i=高度;i>0;i--)
{
对于(j=高度-1;j>0;j--)
{
printf(“”);
}
对于(j=计数;j>0;j--)
{
printf(“#”);
}
printf(“”);
对于(j=计数;j>0;j--)
{
printf(“#”);
}
计数++;
printf(“\n”);
}
}
在您的测试中,什么是GetInt
返回值?您在所有这些循环中都使用了i
,我认为这可能是原因。为嵌套的控制变量使用不同的名称这是什么缩进样式?@LưuVĩnhPhúc:这是。感谢c新手,不知道迭代器读取for循环参数之外的内容。