首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言陣列倒序排列:索引計算錯誤與交換邏輯修正

     編輯:程式設計綜合問答

原代碼兩處關鍵錯誤導致倒序失效:

  1. #include 缺少標頭檔名,應為 #include <stdio.h>。
  2. 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 即可避免重複交換中間元素。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved