7-12 空心字母金字塔
输入一个大写的英文字母,输出空心的字母金字塔。
输入格式:
一个大写英文字母。
输出格式:
一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。
输入样例:
E
输出样例:
A
B B
C C
D D
EEEEEEEEE
代码实现
#include<stdio.h>
int main()
{
char c;
int pos,num,poss=39;//poss是因为第一次要输出39个空格
scanf("%c",&c);
//pos=(c-'A')*2+1;忘了当时想干啥。。。
num=(c-'A')+1;//一共有多少行
for(register int i=1;i<=num;i++)
{
for(register int j=poss;j>=1;j--)//第一个字母是在40列
{
printf(" ");
}
poss--;//空格每行减少一个
printf("%c",('A'+i-1));//输出左侧字母,第一行只有一个
if(i!=1&&i!=num)//空心的输出
{
for(register int j=1;j<=(i-1)*2-1;j++)
{
printf(" ");
}
printf("%c\n",('A'+i-1));//最右侧的字母
}
if(i==num)//最下面那一行是实心的
{
for(register int j=1;j<=(i-1)*2;j++)
{
printf("%c",('A'+i-1));
}
//printf("%c\n",);
}
if(i==1)//第一次输出字母时换行
{
printf("\n");
continue;
}
}
return 0;
}