C语言求数组中位数
时间: 2023-08-28 09:03:19 浏览: 100
要求数组中位数,需要先对数组进行排序,然后根据数组长度的奇偶性来确定中位数。
以下是一个示例代码,其中使用了冒泡排序对数组进行排序,并根据数组长度的奇偶性来计算中位数:
```c
#include <stdio.h>
void bubble_sort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[] = {9, 2, 5, 4, 8, 6, 3, 7, 1};
int len = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, len);
int mid;
if (len % 2 == 0) {
mid = (arr[len / 2 - 1] + arr[len / 2]) / 2;
} else {
mid = arr[len / 2];
}
printf("中位数为:%d\n", mid);
return 0;
}
```
在这个示例中,我们先定义了一个 `bubble_sort()` 函数,用于对数组进行排序。然后在 `main()` 函数中,我们先定义了一个数组 `arr`,并计算出其长度 `len`。接着使用 `bubble_sort()` 函数对数组进行排序。最后根据数组长度的奇偶性来确定中位数,并输出结果。
运行结果为:
```
中位数为:5
```
阅读全文