C语言求有序序列的中位数
时间: 2024-09-27 15:12:02 浏览: 30
冒泡法排序c语言程序c语言实现
在C语言中,求一个有序数组的中位数,可以分为两种情况:奇数元素个数和偶数元素个数。
**1. 奇数元素个数**:
- 首先找到中间的那个元素,即数组长度除以2取整的结果。例如,如果数组有5个元素,中位数就是第3个元素。
- 可以通过遍历数组,当计数达到中间位置时直接返回当前元素作为中位数。
**2. 偶数元素个数**:
- 中间有两个元素,这时中位数是这两个元素的平均值。同样从数组开始,找到两个中间元素,然后返回它们的平均值。
以下是简单的函数示例:
```c
#include <stdio.h>
double findMedian(int arr[], int n) {
if (n % 2 == 0) { // 偶数个数
int mid = n / 2;
return (arr[mid - 1] + arr[mid]) / 2.0;
} else { // 奇数个数
int mid = n / 2;
return arr[mid];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
double median = findMedian(arr, n);
printf("The median of the array is: %.2f\n", median);
return 0;
}
```
阅读全文