PTA 7-123 空心字母金字塔

输入一个大写的英文字母,输出空心的字母金字塔。

输入格式:

一个大写英文字母。

输出格式:

一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。

输入样例:

E

结尾无空行

输出样例:

                                       A
                                      B B
                                     C   C
                                    D     D
                                   EEEEEEEEE

结尾无空行

由于目前在网上还没有找到比较简洁的代码,所以就献丑把自己的代码搬上来了

有个小缺陷就是输入为'B'的时候需要进行特殊处理,如果大佬有更好的解决办法欢迎指点一下

#include <stdio.h>
int main ()
{
    char c,t='B';
    int judge=0;
    scanf("%c",&c);
    int num=c-'A'+1;
    //因为第一行只有一个'A',不需要输出中间的空格,所以首先将'A'输出
    printf("%40c\n",'A');
    //接下来输出中间部分,即两个字母和夹在中间的空格
    for(int i=1;i<=num-2;i++)
    {
        for(int j=38;j>=i;j--) printf(" ");
        printf("%c",t);
        for(int k=1;k<=2*i-1;k++) printf(" ");
        printf("%c\n",t++);
        judge=1;
    }
    //最后输出最后一行,这里就需要处理一下,如果输入为'A'的话这一段就不用执行了
    if(judge||c=='B')//'B'的情况需要特殊处理,即输入为'B'时这一段需要执行
    {
    for(int i=40-num;i>=1;i--) printf(" ");
    for(int i=1;i<=2*num-1;i++) printf("%c",t);
    }
}


版权声明:本文为qq_61542336原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。