25 打印金字塔

 

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("\n");
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("\n");
20     }
21 }

  

猜你喜欢

转载自www.cnblogs.com/shanlu0000/p/12346678.html