首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C 語言三數值由大到小排序函數實作

     編輯:關於C

以兩兩比較交換法實現三數排序

本範例實作 sort 函數,接收三個整數參數,透過三次兩兩比較與交換,將數值由大到小排序並輸出。演算法邏輯:先確保第一參數為最大值,再確保第二參數大於第三,最終達到遞減排序。雖非通用排序演算法,但針對固定三數場景極為高效且易懂。

排序邏輯步驟

  1. 比較 a 與 b,若 a < b 則交換,確保 a 為三者中最大。
  2. 比較 a 與 c,若 a < c 則交換,進一步確保 a 為最大。
  3. 比較 b 與 c,若 b < c 則交換,確保 b >= c。

完整程式碼

#include <stdio.h>

void sort(int a, int b, int c) {
    int t;
    if (a < b) { t = a; a = b; b = t; }
    if (a < c) { t = a; a = c; c = t; }
    if (b < c) { t = b; b = c; c = t; }
    printf("由大到小排序:%d %d %d\n", a, b, c);
}

int main() {
    int a, b, c;
    printf("請輸入三個整數:");
    scanf("%d %d %d", &a, &b, &c);
    sort(a, b, c);
    return 0;
}

執行範例

請輸入三個整數:3 9 5
由大到小排序:9 5 3

此程式展示值傳遞參數的排序邏輯,適合初學者理解比較交換與暫存變數交換技巧。若需將結果回傳主程式,可改用指標參數或結構體回傳。

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