(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 }
打印后的效果就是这样子了。