Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C';对于';循环只循环一次_C_Cs50 - Fatal编程技术网

C';对于';循环只循环一次

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--)

我在这里搜索了“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");
        }
}
#包括
#包括
内部主(空)
{
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循环参数之外的内容。