要求一个数组的中位数,可以按照以下步骤进行:
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;
}
以上代码先对数组进行排序,然后根据数组长度的奇偶性来求出中位数。