在C語言中,sort函數用于對數組進行排序。它的使用方法如下:
引入頭文件:#include <stdlib.h>
。
定義比較函數:sort函數需要一個用于比較數組元素的函數作為參數。比較函數的定義如下:
int compare(const void *a, const void *b) {
// 指針類型轉換
const int *num1 = (const int *)a;
const int *num2 = (const int *)b;
// 比較并返回結果
if (*num1 < *num2) {
return -1;
} else if (*num1 > *num2) {
return 1;
} else {
return 0;
}
}
比較函數返回值為負數表示a應放在b之前,返回值為正數表示a應放在b之后,返回值為0表示a和b相等。
qsort(array, arraySize, sizeof(int), compare);
。
其中,array是要排序的數組的指針,arraySize是數組中元素的個數,sizeof(int)是數組中每個元素的大小,compare是比較函數的指針。完整的示例代碼如下:
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
const int *num1 = (const int *)a;
const int *num2 = (const int *)b;
if (*num1 < *num2) {
return -1;
} else if (*num1 > *num2) {
return 1;
} else {
return 0;
}
}
int main() {
int array[] = {5, 2, 8, 1, 9};
int arraySize = sizeof(array) / sizeof(array[0]);
qsort(array, arraySize, sizeof(int), compare);
for (int i = 0; i < arraySize; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
輸出結果為:1 2 5 8 9,表示數組已經按照從小到大的順序排序。