7-123 空心字母金字塔 (10分)
输入一个大写的英文字母,输出空心的字母金字塔。
输入格式:
一个大写英文字母。
输出格式:
一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。
输入样例:
E
输出样例:
A
B B
C C
D D
EEEEEEEEE
#include <stdio.h>
#define N 41
int main(int argc, char **argv) {
char n,space=-1;
scanf("%c",&n);
//i指行数,n-64为字母个数,可写成 n-65+1,A的ASCII码为65
for(int i=1,m='A';i<=n-64;i++,m++){
for(int j=1;j<N-i;j++){ //前面空格
printf(" ");
}
printf("%c",m); //左边第一个字母
for(int k=space;k>0;k--){ //中间空格
if(i==n-64){ //最后一排输出字母
printf("%c",m);
}else{
printf(" ");
}
}
if(i!=1){
printf("%c",m); //右边的字母
}
space+=2; //中间空格数
printf("\n");
}
return 0;
}