c语言找数组的中位数
时间: 2023-11-24 07:49:18 浏览: 121
在C语言中,找到一个数组的中位数可以通过以下步骤实现:
1. 对数组进行排序,可以使用冒泡排序、快速排序等算法。
2. 判断数组长度的奇偶性,如果是偶数,则取中间两个数的平均值作为中位数;如果是奇数,则直接取中间的数作为中位数。
下面是一个示例代码,其中包含了冒泡排序和快速排序两种算法的实现:
```
#include <stdio.h>
#include <stdlib.h>
// 冒泡排序
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 快速排序
int cmp(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int main() {
int n;
scanf("%d", &n);
int arr[n], i;
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序
bubbleSort(arr, n);
// 快速排序
qsort(arr, n, sizeof(int), cmp);
double median;
if (n % 2 == 0) {
median = (arr[n / 2 - 1] + arr[n / 2]) / 2.0;
} else {
median = arr[n / 2]; }
printf("%.1lf", median);
return 0;
}
```
阅读全文