以下解法对于像我一样记不清楚ASCII码的朋友们非常友好。代码见下:
#include<stdio.h>
int main() {
char c, a;
int i, j, n;
scanf("%c", &c);
n = c - 'A' + 1; //确定总行数n
for (i = 1; i <= n; i++) { //外层循环——i表示打印的是第i行
a = 'A'; //每次外层循环都需将a重置,勿忘!
for (j = 1; j <= n - i; j++) {
printf(" ");
} //打印每行的空格
for (j = n - i + 1; j <= n; j++) {
printf("%c", a++);
} //打印每行的递增序列
a -= 2; //将a表示为递减序列的第一个字母
for (j = n + 1; j <= n + i - 1; j++) {
printf("%c", a--);
} //打印每行的递减序列
printf("\n"); //每打印完一行后都需换行,勿忘!
}
return 0;
}