编程求数组各元素的中位数,要求如下:
(1)void array_input(double a[], int n)的功能是:输入double型数组a的各元素值,参数n是数组元素的个数;
(2)void bubble_sort(double a[], int n)函数实现从小到大冒泡排序功能,参数n是数组元素的个数;
(3)double median(double a[], int n)的功能是:求出有序数组array各元素的中位数,参数n是数组元素的个数;
(说明:中位数就是在已排序的各元素中,处于中间位置的元素值:当数组元素个数为奇数时,处于中间位置的元素只有一个,中位数就是该元素的值;当数组元素个数为偶数时,处于中间位置的元素只有两个,中位数就是这两个元素的简单算术平均数)
(4)void array_print(double a[],int n)功能是打印输出数组
(5)主函数的功能:定义一个是长度为8的double型数组,通过调用array_input()输入各元素的值,再调用select_sort()对数组各元素排序,之后调用median()得到中位数,最后输出结果;
(6)主函数在前,上述三个函数在后面定义。程序运行如下图所示:
1 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
#include <stdio.h> void main() { //函数声明 void array_input(double a[], int n); void bubble_sort(double a[], int n); double median(double a[], int n); void array_print(double a[],int n); double arr[10],m; int n=8; array_input(arr,n); bubble_sort(arr,n); m=median(arr,n); printf("中位数为%.3lf\n",m); array_print(arr,n); } /** 输入double型数组a的各元素值,参数n是数组元素的个数 **/ void array_input(double a[], int n) { printf("请输入数据%d个数据(以空格分隔):\n",n); for(int i=0;i<n;i++) { scanf("%lf",&a[i]); } } /** 函数实现从小到大冒泡排序功能,参数n是数组元素的个数 **/ void bubble_sort(double a[], int n) { int i,j; double temp; for(i=0;i<n-1;i++) { for(j=i;j<n;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } /** 求出有序数组array各元素的中位数,参数n是数组元素的个数 **/ double median(double a[], int n) { double result=0; if(n%2==0) { result=(a[n/2]+a[n/2-1])/2; }else{ result=a[n/2]; } return result; } /** 打印输出数组 **/ void array_print(double a[],int n) { printf("数组从小到大打印输出为:\n"); for(int i=0;i<n;i++) { printf("%.3lf ",a[i]); } printf("\n"); }
- 1 回答
- 0 关注
- 1826 浏览
添加回答
举报
0/150
提交
取消