编写一个程序,用户输入某个大写字母,产生一个金字塔图案。
例如:
输入大写字母D
输出结果为:
实现代码如下:
#include <stdio.h>
int main()
{
char ch;
printf("请输入一个大写字母:");
scanf("%c",&ch);
for(int i=65;i<=ch;i++)/*确定金字塔的高度即行数:65代表大写A的ASCII码值,从A到输入的字母的距离就是该金字塔的高度*/
{
for(int x=ch;x>i;x--)//该for循环用来计算每层前面的空格,每执行一次空格就少一个-->(x>i)
{
printf(" ");
}
//每层金字塔可以看作从中间对称轴分开输出
for (int j = 65; j <= i; j++)//输出为金字塔对称轴的左边部分,从A依次输出到i代表的字母
{
printf("%c",j);
}
for (int j = i-1; j >=65; j--)//输出为金字塔对称轴的右边部分,从i-1代表的字母依次输出到A
{
printf("%c",j);
}
printf("\n");//每输出完一层就进行换行的操作
}
需要理解每一个for循环语句的意义.
拓展练习: