用C语言查找中位数,要求如下:输入用n表示,数组元素个数(3<n<10),输入乱序数组array[n],使用sort函数对array[n]进行排序,使用medi函数找到中位数。
时间: 2024-02-11 19:05:39 浏览: 71
好的,我来解答你的问题。
首先,你需要在程序中包含头文件 `<stdlib.h>` 和 `<stdio.h>`。
然后,你可以按照以下代码实现你的要求:
```c
#include <stdio.h>
#include <stdlib.h>
// 比较函数,用于 sort 函数排序
int cmp(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
// 寻找中位数
float medi(int array[], int n) {
qsort(array, n, sizeof(int), cmp); // 使用 sort 函数对数组进行排序
if (n % 2 == 0) { // 数组元素个数为偶数
return (array[n/2-1] + array[n/2]) / 2.0;
} else { // 数组元素个数为奇数
return array[n/2];
}
}
int main() {
int n;
printf("请输入数组元素个数(3<n<10):");
scanf("%d", &n);
int array[n];
printf("请输入数组元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &array[i]);
}
printf("中位数为:%.2f\n", medi(array, n));
return 0;
}
```
以上代码中,`cmp` 函数是用于 `qsort` 函数排序的比较函数,`medi` 函数用于寻找中位数,`main` 函数中先输入数组元素个数和数组元素,然后调用 `medi` 函数寻找中位数并输出。
需要注意的是,以上代码中的 `medi` 函数只适用于数组元素为整数的情况,如果数组元素为浮点数需要对 `medi` 函数进行修改。
阅读全文