外層迴圈改為 for(i=1; i<=num; i++) 從頂向下,其餘邏輯不變,得到頂朝上的實心直角三角形。
#include <stdio.h>
const int num = 5;
int main()
{
int i, j;
for (i = 1; i <= num; i++) { // 從頂部行數遞增
for (j = 1; j <= 2*num; j++) {
if (j >= 1 && j <= 2*i-1) printf("*");
else printf(" ");
}
printf("\n");
}
return 0;
}
*
***
*****
*******
*********
| 方向 | 外層迴圈 | 星數公式 | 左邊界 |
|---|---|---|---|
| 左下(底朝上) | i=num..1 | 2*i-1 | 固定第1列 |
| 左上(頂朝上) | i=1..num | 2*i-1 | 固定第1列 |
| 右下 | i=num..1 | 2*i-1 | 2*num - (2*i-1) + 1 |
| 右上 | i=1..num | 2*i-1 | 2*num - (2*i-1) + 1 |
同一幾何形狀,只需改變迴圈方向(遞增/遞減)即可翻轉圖形,這是「迴圈控制輸出順序」的直觀體驗。