C语言的一个入门题型,不会做

输入顶行字符和图形的高,输出如图所示图形。

例如顶行字符为 ' A ' ,图形的高为 5

          A

        B   B

      C     C

    D         D

   E            E

    D         D

      C    C

        B B

         A

#include <stdio.h>
int main() {
    char c;
    int h;
    int i;
    int j;
    printf("Input c and h ('A'<=c<='Z',1<=h<=26):\n");
    scanf("%c%d",&c,&h);
    if (!('A'<=c && c<='Z'
        &&  1<=h && h<= 26)) {
        printf("not 'A'<=c<='Z',1<=h<=26\n");
        return 1;
    }
    for (i=0;i<h;i++) {
        for (j=0;j<h-1-i;j++) printf(" ");
        printf("%c",c);
        if (i>0) {
            for (j=0;j<2*i-1;j++) printf(" ");
            printf("%c",c);
        }
        printf("\n");
        c++;if (c>'Z') c='A';
    }
    c--;if (c<'A') c='Z';
    for (i=h-2;i>=0;i--) {
        c--;if (c<'A') c='Z';
        for (j=0;j<h-1-i;j++) printf(" ");
        printf("%c",c);
        if (i>0) {
            for (j=0;j<2*i-1;j++) printf(" ");
            printf("%c",c);
        }
        printf("\n");
    }
    return 0;
}