#include <stdio.h>
int main() {
int s[4], i, j, minIdx, temp;
for (i = 0; i < 4; i++) scanf("%d", &s[i]);
for (j = 0; j < 3; j++) { // 只需 n-1 輪
minIdx = j;
for (i = j + 1; i < 4; i++) // 從未排序區找最小
if (s[i] < s[minIdx]) minIdx = i;
if (minIdx != j) { // 交換
temp = s[minIdx];
s[minIdx] = s[j];
s[j] = temp;
}
}
for (i = 0; i < 4; i++) printf("%d\n", s[i]);
return 0;
}
在外層循環末尾加 `printf("Round %d: ", j); for(i=0;i<4;i++) printf("%d ", s[i]); puts("");` 觀察每輪狀態,快速定位邏輯錯誤。
掌握標準模板,告別手寫排序 Bug。