180
社区成员




本题要求输入一个大写的英文字母,输出空心的字母金字塔。
(考察同学对于循环的运用)
一个大写英文字母。
一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。
E
A
B B
C C
D D
EEEEEEEEE
分析:
因此需要三层循环.
代码如下:
#include <stdio.h>
int main()
{
char ch;
ch=getchar();
int blank=39;
for(char i='A';i<=ch;i++)
{
for(int j=blank;j>0;j--){printf(" ");}
for(int k=1;k<=(i-'A')*2+1;k++) //(i-'A'*2+1 用于计算中间空格的数量)
{
if(i!=ch)
{
if(k==1||k==(i-'A')*2+1) //非最后一行,只在首和末输出字母
{printf("%c",i);}
else
{printf(" ");}
}
else
{
printf("%c",i); //最后一行全输出字母
}
}
printf("\n"); //不要忘记每行输出完成后要换行
blank--; //每完成一行,空格数减一
}
return 0;
}
总结:
对于形状的输出,一般都是对每行的输出进行一层循环;
对每行的内容再进行循环,达到输出特定形状的要求。