1. 程式人生 > 其它 >(for迴圈)列印各種三角形(C語言)

(for迴圈)列印各種三角形(C語言)

在練習製作三子棋時,遇到了需要用for進行靈活的輸出正方形宮格,就想起了列印*號三角形,然後索性再練習了一番。

列印後的效果就是這樣子了。

`#include <stdio.h>

int main(){
int tmp;

  printf("請輸需要列印的行數:");
  scanf("%d", &tmp);

// 列印靠左正三角形
for(int i=1;i<=tmp;i++){
for(int j=0;j<i;j++){
printf("* ");
}
printf("\n");
}

// 列印靠左倒三角形
for(int i=1;i<=tmp;i++){
for(int j=0;j<tmp-i;j++){
printf("* ");
}
printf("\n");
}

  // 列印靠右的正三角形
  for(int i=1;i<=tmp;i++){
      // tmp-i 則空格數剛好比需要輸出的列數少一個,也就是*號的位置
      for(int j=0;j<tmp-i;j++){
          printf(" ");
      }
      for(int k=0;k<i;k++){
          printf("* ");
      }
      printf("\n");
  }

  // 列印靠右的倒三角形,因為少一行,所以需要-1
  for(int i=1;i<=tmp-1;i++){
      for(int j=0;j<i;j++){
          printf(" ");
      }
      for(int k=0;k<tmp-i;k++){
          printf("* ");
      }
      printf("\n");
  }

  // 列印正大三角形
  for(int i=1;i<=tmp;i++){
      for(int j=0;j<tmp-i;j++){
          printf(" ");
      }
      for(int k=0;k<2*i-1;k++){
          printf("*");
      }
      printf("\n");
  }

  // 列印倒大三角形
  for(int i=1;i<=tmp-1;i++){
      for(int j=0;j<i;j++){
          printf(" ");
      }
      for(int k=0;k<(2*(tmp-i)-1);k++){
          printf("*");
      }
      printf("\n");
  }

  return 0;

}`