要求一個數組的中位數,可以按照以下步驟進行:
qsort
來實現。#include <stdio.h>
#include <stdlib.h>
// 比較函數,用于排序
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[] = {3, 1, 5, 2, 4};
int len = sizeof(arr) / sizeof(arr[0]);
// 對數組進行排序
qsort(arr, len, sizeof(int), compare);
// 打印排序后的數組
printf("Sorted array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[] = {3, 1, 5, 2, 4};
int len = sizeof(arr) / sizeof(arr[0]);
// 對數組進行排序
qsort(arr, len, sizeof(int), compare);
// 打印排序后的數組
printf("Sorted array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 求中位數
int median;
if (len % 2 == 0) {
median = (arr[len/2 - 1] + arr[len/2]) / 2;
} else {
median = arr[len/2];
}
printf("Median: %d\n", median);
return 0;
}
以上代碼先對數組進行排序,然后根據數組長度的奇偶性來求出中位數。