1,思路分析,
先打印出矩形 --》 打印出一半金字塔 -> 打印出完整金字塔 -> 打印出空心金字塔
①先打印矩形
②再打印一半的金字塔
③,打印完整的金字塔(找到行和列的关系)
每一行的数目是 1,3,5,7,9,即 2*i-1
④处理每一层前的空格
最后一行(第7行)前空格:0
第6行前空格: 1
第5行前空格: 2
第4行前空格 3
第3行前空格 4
第2行前空格 5
第1行前空格 6
。。。
第n 行前空格: 7-n
5,打印空心金字塔(处理星号打印时的空格)
1 #include<stdio.h> 2 3 void main() { 4 for (int i = 1;i <= 7;i++) { 5 for (int k = 1;k<=(7-i);k++) { 6 printf(" "); 7 } 8 for (int j = 1;j <= (2*i-1);j++) { 9 if (j == 1 || j == 2*i-1||i==7) { 10 printf("*"); 11 } 12 else { 13 printf(" "); 14 } 15 } 16 printf(" "); 17 } 18 }
7,通过用户的输入控制金字塔层数
1 #include<stdio.h> 2 3 void main() { 4 int num = 0; 5 printf("请输入层数:"); 6 scanf("%d", &num); 7 for (int i = 1;i <= num;i++) { 8 for (int k = 1;k<=(num-i);k++) { 9 printf(" "); 10 } 11 for (int j = 1;j <= (2*i-1);j++) { 12 if (j == 1 || j == 2*i-1||i==num) { 13 printf("*"); 14 } 15 else { 16 printf(" "); 17 } 18 } 19 printf(" "); 20 } 21 }
练习:打印空心菱形
*
* *
* *
* *
*