(for循环)打印各种三角形(C语言)

在练习制作三子棋时,遇到了需要用for进行灵活的输出正方形宫格,就想起了打印*号三角形,然后索性再练习了一番。

 

 1 #include <stdio.h>
 2 
 3 int main(){
 4     int tmp;
 5 
 6     printf("请输需要打印的行数:");
 7     scanf("%d", &tmp);
 8 
 9 // 打印靠左正三角形
10     for(int i=1;i<=tmp;i++){
11         for(int j=0;j<i;j++){
12             printf("* ");
13         }
14         printf("\n");
15     }
16 
17     // 打印靠左倒三角形
18     for(int i=1;i<=tmp;i++){
19         for(int j=0;j<tmp-i;j++){
20             printf("* ");
21         }
22         printf("\n");
23     }
24 
25     // 打印靠右的正三角形
26     for(int i=1;i<=tmp;i++){
27         // tmp-i 则空格数刚好比需要输出的列数少一个,也就是*号的位置
28         for(int j=0;j<tmp-i;j++){
29             printf(" ");
30         }
31         for(int k=0;k<i;k++){
32             printf("* ");
33         }
34         printf("\n");
35     }
36 
37     // 打印靠右的倒三角形,因为少一行,所以需要-1
38     for(int i=1;i<=tmp-1;i++){
39         for(int j=0;j<i;j++){
40             printf(" ");
41         }
42         for(int k=0;k<tmp-i;k++){
43             printf("* ");
44         }
45         printf("\n");
46     }
47 
48     // 打印正大三角形
49     for(int i=1;i<=tmp;i++){
50         for(int j=0;j<tmp-i;j++){
51             printf(" ");
52         }
53         for(int k=0;k<2*i-1;k++){
54             printf("*");
55         }
56         printf("\n");
57     }
58 
59     // 打印倒大三角形
60     for(int i=1;i<=tmp-1;i++){
61         for(int j=0;j<i;j++){
62             printf(" ");
63         }
64         for(int k=0;k<(2*(tmp-i)-1);k++){
65             printf("*");
66         }
67         printf("\n");
68     }
69 
70     return 0;
71 }

 

打印后的效果就是这样子了。

posted @ 2021-08-24 22:21  _Turbo  阅读(3948)  评论(0编辑  收藏  举报