C语言编程实现,输入n个有序的数据并存入某一维数组中,求该数组的中位数(中位数是指排列在有序数组中间的那个数,如果数据个数为偶数,则中位数等于中间那两个元素的平均值)
时间: 2023-06-10 16:07:01 浏览: 77
C语言程序设计-编程实现求数列1/2,3/4,5/8,9/32 的所有大于等于0.000001的数据项之和
5星 · 资源好评率100%
以下是用C语言编写的求数组中位数的程序:
```c
#include <stdio.h>
int main() {
int n, i, j, temp;
float median;
int arr[100];
printf("Enter the number of elements in the array: ");
scanf("%d", &n);
printf("Enter the elements in ascending order:\n");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// Sorting the array in ascending order
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// Finding the median
if (n % 2 == 0) {
median = (float)(arr[n/2] + arr[n/2 - 1]) / 2;
}
else {
median = arr[n/2];
}
printf("The median of the array is: %.2f", median);
return 0;
}
```
程序首先要求用户输入数组的元素个数和数组元素的值,然后通过选择排序算法将数组按升序排列。接着,程序计算出中位数,如果数组元素个数为偶数,则取中间两个元素的平均值,否则取中间的元素。最后,程序输出计算出的中位数。
阅读全文