int a[10], max = 0, min = 0;
for (int i = 0; i < 10; i++) scanf("%d", &a[i]);
for (int i = 1; i < 10; i++) {
if (a[i] > a[max]) max = i;
if (a[i] < a[min]) min = i;
}
a[i]:陣列第 i 個元素的值 (輸入的整數)。max, min:儲存目前最大/最小值對應的下標 (索引),初始為 0。i=0 時 a[0] > a[0] 為假,max 維持 0,**重複比較一次無副作用**,邏輯簡潔統一。i=1 開始即可避免自我比較,但從 0 開始碼風更對稱。輸入:5 2 9 1 7
| i | a[i] | a[max] | 比較結果 | max | min |
|---|---|---|---|---|---|
| 0 | 5 | 5 | - | 0 | 0 |
| 1 | 2 | 5 | 2<5 | 0 | 1 |
| 2 | 9 | 5 | 9>5 | 2 | 1 |
| 3 | 1 | 9 | 1<9, 1<2 | 2 | 3 |
| 4 | 7 | 9 | 7<9 | 2 | 3 |
最終 max=2 (值 9), min=3 (值 1)。
printf("Max: %d, Min: %d\n", a[max], a[min]);