字母金字塔
通过输入的字母,实现字母金字塔,效果如下面这个图:
代码示例:
#include <stdio.h>
int main(int argc, char const *argv[])
{
// (1)、输入大写字母
int n = 0;
char ch = 0;
printf("请输入任意大写字母:\n");
n = scanf("%c", &ch);
while( getchar() != '\n' );
// (2)、打印大写字母的金字塔图形
int spaces = ch-'A'; // 计算要打印的空格数
//外层循环确定金字塔的层数(控制行),内层循环确定每一层要打印的空格数和字母个数和逆序字母(控制列)
for (int i = 0; i <= ch-'A'; i++) // a、确定金字塔的层数(要打印多少行) -->ch-'A' -->'D'-'A'-->3(68-65=3)(0-3有4层)
{
// 1、打印空格
for (int j = 0; j < spaces; j++) // b、第一层:0123空格,第二层:012, 第三层:01, 第四层:0, 第五层,无
{
printf(" ");
}
// 2、打印大写字母顺序(正序)
for (int k = 0; k <= i; k++) // c、k是正过来(ABCDE)
{
printf("%c", 'A'+k);
}
// 3、打印大写字母逆序
for (int m = i-1; m>=0; m--) // d、m是倒过来(EDCBA)
{
printf("%c", 'A'+m);
}
// 5、打印完一行后,要换行
printf("\n");
spaces--; // 换第二行时,打印的空格数,都需要减少1个
//以上三个循环控制金字塔的每一层的输出数据(即三个循环控制列的输出)
//所以看的时候要每一行,每一行的看才容易理解
}
return 0;
}
希望看完能对你的控制流语句有所提示,我是bardb(八分贝),道友,下期见!