我要一个数组按大小排序后取中位数的C语言程序
时间: 2023-02-22 10:30:34 浏览: 85
c语言中位数
5星 · 资源好评率100%
以下是一个 C 语言程序,可以实现排序数组并取中位数:
```
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
int x = *(int *)a;
int y = *(int *)b;
return x - y;
}
int main() {
int nums[] = {1, 5, 2, 8, 3};
int len = sizeof(nums) / sizeof(nums[0]);
qsort(nums, len, sizeof(int), compare);
int median;
if (len % 2 == 0) {
median = (nums[len / 2 - 1] + nums[len / 2]) / 2;
} else {
median = nums[len / 2];
}
printf("中位数是:%d\n", median);
return 0;
}
```
其中,我们使用了 C 标准库中的 `qsort` 函数对数组进行排序,并在 `compare` 函数中定义了排序规则。最后,我们在 `main` 函数中根据数组长度的奇偶性判断中位数的值,并将其输出。
阅读全文