C语言学习-字母金字塔问题
问题描述
编写一个程序,用户输入某个大写字母,产生一个金字塔图案。
 例如:输入E
 产生如下图案:
 
代码如下:
#include <stdio.h>
int main() {
    int i, j, k, white;
    char ch;
    scanf("%c", &ch);
    white = ch - 65;//第一行空格数,A ascii 65
    //打印空格
    for (int j = white; j > 0; j--)
    {
        for(i = j; i > 0; i--)
        {
            printf(" ");
            if(i == 1)
            {   //打印前n-1行
                for(k = 65; k <= ch - j; k++)
                {
                    printf("%c", k);
                    if(k == ch - j)
                    {
                        for (int k = ch - j -1; k >= 65; --k)
                        {
                            printf("%c", k);
                        }
                    }
                }
            }
        }
        printf("\n");
    }
    //打印最后一行
    for(k = 65; k <= ch; k++)
    {
        printf("%c", k);
        if(k == ch)
        {
            for (int k = ch - 1; k >= 65; --k)
            {
                printf("%c", k);
            }
        }
    }
    return 0;
}
 
运行结果











