列印高度為 5 行的倒向金字塔:
*********
*******
*****
***
*
外層迴圈從 num 遞減至 1:
for(i = num; i >= 1; i--)
內層判斷條件不變,星號範圍仍為 [num-i+1, num+i-1]。
#include <stdio.h>
const int num = 5;
int main() {
int i, j;
for(i = num; i >= 1; i--) {
for(j = 1; j < 2*num; j++) {
if(j >= num - i + 1 && j <= num + i - 1) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
| 特性 | 正向金字塔 | 倒向金字塔 |
|---|---|---|
| 外層迴圈 | i = 1; i <= num; i++ | i = num; i >= 1; i-- |
| 第一行星號數 | 1 | 2*num-1 |
| 最後一行星號數 | 2*num-1 | 1 |
將兩個迴圈結合即可列印菱形(見問題 41)。