-3

我在这里浏览了“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");
        }
}
4

2 回答 2

2

您在内部循环中使用相同的迭代器,而在外部(主)循环中使用它。

只需使用一个名为j(当然更早声明它)的整数并在内部使用它。

于 2014-07-16T13:51:23.173 回答
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");
        }
}
于 2014-07-16T13:58:41.557 回答