原代碼兩處關鍵錯誤導致倒序失效:
#include 缺少標頭檔名,應為 #include <stdio.h>。m = n-1/2 運算優先級導致結果為 n-0,正確寫法 m = (n-1)/2。void inv(int x[], int n) {
int temp, i, j, m = (n - 1) / 2;
for (i = 0; i <= m; i++) {
j = n - 1 - i;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
for(i=0,j=n-1; i<=m; i++,j--) 的可行性完全可行,且更簡潔。只要確保 i < j 即可避免重複交換中間元素。