输入一个大写的英文字母,输出空心的字母金字塔。
输入格式:
一个大写英文字母。
输出格式:
一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。
输入样例:
E
结尾无空行
输出样例:
AB BC CDDEEEEEEEEE
结尾无空行
由于目前在网上还没有找到比较简洁的代码,所以就献丑把自己的代码搬上来了
有个小缺陷就是输入为'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);}}