2

C でピラミッドを作成しようとしています。次のパターンを取得する必要があります。

    A
   ABA
  ABCBA
 ABCDCDA
ABCDEDCBA

ネストされた for ループを使用する必要がありますが、デクリメントが適切に機能していません。これが私のコードです。

int main(void)

{

    int i, j, k, g;
    char userLatter;
    printf("please enter an uppercase letter:\n");
    scanf("%c", &userLatter);
    int asci = userLatter;

    for (i = 0; i < 5; i++)
    {

        for (j = 4; j > i; j--)
        {
            printf(" ");
        }

        asci = userLatter;
        for (k = 0; k <= i ; k++)
        {
         printf("%c", asci++);
        }


        for (g = 1; g <= i; g++)
        {
            printf("%c", --asci);
        }

        printf("\n"); 
    }

}

これは入力「a」です

そして、得られる出力は次のとおりです。

    a
   abb
  abccb
 abcddcb
abcdeedcb

私が間違っていることを教えてください。

tnx

4

2 に答える 2

7

追加:

--asci;

2 つのforループの間。

最初のループで、後置asci++インクリメントを実行します。式が評価されてから、オブジェクトがデクリメントされます。asci

于 2013-01-23T23:14:37.670 に答える
2

そのコサイダー

printf("%c", --asci);//decreases the value and then prints

とは異なります

printf("%c", asci--);//prints and then decreases the value
于 2013-01-23T23:15:16.677 に答える