码迷,mamicode.com
首页 > 其他好文 > 详细

25 打印金字塔

时间:2020-02-22 19:56:59      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:控制   思路分析   图片   amp   width   bsp   练习   处理   思路   

 技术图片

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 }

技术图片

 

 练习:打印空心菱形

    *

  *   *

*       *

  *   *

    *

 

 

 

 

 

 

 

  

 

25 打印金字塔

标签:控制   思路分析   图片   amp   width   bsp   练习   处理   思路   

原文地址:https://www.cnblogs.com/shanlu0000/p/12346678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!