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

C 語言作業:四數由小到大排序(交換法實現)

     編輯:程式設計綜合問答

題目要求

將四個變數 a, b, c, d 依由小到大順序排列,排序後 a 為最小值,d 為最大值。

解法:兩兩比較交換

使用巢狀迴圈或連續比較交換,確保每一輪將最大值「浮」到右側。程式碼示意:

#include 

void sort4(int *a, int *b, int *c, int *d) {
    int t;
    // 兩兩比較,確保 a <= b <= c <= d
    if (*a > *b) { t = *a; *a = *b; *b = t; }
    if (*b > *c) { t = *b; *b = *c; *c = t; }
    if (*c > *d) { t = *c; *c = *d; *d = t; }
    // 第二輪
    if (*a > *b) { t = *a; *a = *b; *b = t; }
    if (*b > *c) { t = *b; *b = *c; *c = t; }
    // 第三輪
    if (*a > *b) { t = *a; *a = *b; *b = t; }
}

int main() {
    int a, b, c, d;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    sort4(&a, &b, &c, &d);
    printf("%d %d %d %d\n", a, b, c, d);
    return 0;
}

原最佳回答提供手寫流程圖片,此處以標準排序網路實現,邏輯清晰且易擴展。

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