输入一个大写的英文字母,输出空心的字母金字塔。
输入格式:
一个大写英文字母。
输出格式:
一个空心的大写英文字母金字塔,其中第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版权协议,转载请附上原文出处链接和本声明。