打印空心字母金字塔
今天独自做了一个这个题,简单的分享一下我的思路和代码
#include <stdio.h>
int main() {
////char ch;
////ch=getchar();
//
//
////这里我们先输出带有E行的图案
//for(int i='A';i<='A';i++){//用字符来做循环条件的参数
// for(int j=0;j<39;j++){//先打印第一行。先打印39个空格
// printf(" ");
//
// }
// printf("A");打印一个A
// printf("\n");
//}
//
//
//for(int i='B';i<=('E'-1);i++){//找到中间n-2行的规律两端是字母,中间是空格
//
// for(int j=0;j<39-(i-'A');j++){//打印前面的空格
//
// printf(" ");
//
//
// }
// printf("%c",i);//打印开头的字母
// for(int k=0;k<(2*(i-'A')-1);k++){
//
//
//
// printf(" ");//打印两字母间的空格
// }
// printf("%c",i);//打印每行最后的字母
//
// printf("\n");
//
//
//}
//
//for(int i='E';i<='E';i++){
// for(int j=0;j<39-(i-'A');j++){
// printf(" ");//打印最后一行的空格,与前面空格的规律一样
//
//
// }
// for(int k=0;k<(2*(i-'A')+1);k++){
//
//
//
// printf("%c",i);//打印最后一行的字符;与前面的规律不一样
//
// }
//}
//下面我们再输出n行
char ch;
scanf("%c", &ch);//搜集字母
//这里我们先输出带有E行的图案
if (ch == 'A') {//这里要判断输入是不是A,因为A和其他的字母输出不一样
for (int i = 'A'; i <= 'A'; i++) {
for (int j = 0; j < 39; j++) {
printf(" ");
}
printf("A");
}
} else {
for (int i = 'A'; i <= 'A'; i++) {
for (int j = 0; j < 39; j++) {
printf(" ");
}
printf("A");
printf("\n");
}//这里是打印第一行
for (int i = 'B'; i <= (ch - 1); i++) {
for (int j = 0; j < 39 - (i - 'A'); j++) {
printf(" ");
}
printf("%c", i);
for (int k = 0; k < (2 * (i - 'A') - 1); k++) {
printf(" ");
}
printf("%c", i);
printf("\n");
}//上面的打印接下来镂空的n-2行
for (int i = ch; i <= ch; i++) {
for (int j = 0; j < 39 - (i - 'A'); j++) {
printf(" ");
}
for (int k = 0; k < (2 * (i - 'A') + 1); k++) {
printf("%c", i);
}
}//这里是打印最后一行
}
return 0;
}
标签:ch,int,字母,打印,空心,金字塔
From: https://www.cnblogs.com/harper886/p/17360010.html