C' for'循环只循环一次

时间:2014-07-16 13:47:25

标签: 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(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");
        }
}

2 个答案:

答案 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");
        }
}