-3

ここで「for」ループの問題についてコードを精査しました。セミコロンなどをチェックしましたが、ループが 1 回だけループしている理由がわかりません。

コードを以下に示します。ありがとうございます。

#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 に答える