c語(yǔ)言怎么從大到小排序數(shù)組

小億
208
2024-03-01 15:58:17

可以使用C語(yǔ)言的標(biāo)準(zhǔn)庫(kù)函數(shù)qsort()來(lái)對(duì)數(shù)組進(jìn)行從大到小的排序。

#include <stdio.h>
#include <stdlib.h>

// 比較函數(shù),用于qsort()排序時(shí)指定排序規(guī)則
int compare(const void *a, const void *b) {
    return (*(int*)b - *(int*)a);
}

int main() {
    int arr[] = {5, 2, 8, 1, 3};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    qsort(arr, n, sizeof(int), compare);

    printf("數(shù)組從大到小排序后:\n");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

在上面的代碼中,我們定義了一個(gè)比較函數(shù)compare(),它會(huì)根據(jù)傳入的兩個(gè)參數(shù)的大小來(lái)決定排序規(guī)則。然后在main()函數(shù)中,我們使用qsort()函數(shù)對(duì)數(shù)組arr進(jìn)行排序,排序規(guī)則由compare()函數(shù)指定。

運(yùn)行以上代碼,輸出結(jié)果會(huì)是:8 5 3 2 1,即數(shù)組從大到小排序后的結(jié)果。

0