C语言编程题,高手进

编程求数组各元素的中位数,要求如下:
(1)void array_input(double array[], int n)的功能是:输入double型数组array的各元素值,参数n是数组元素的个数;
(2)void select_sort(double array[], int n)函数实现从小到大选择排序功能,参数n是数组元素的个数;
(3)double median(double array[], int n)的功能是:求出有序数组array各元素的中位数,参数n是数组元素的个数;
(说明:中位数就是在已排序的各元素中,处于中间位置的元素值:当数组元素个数为奇数时,处于中间位置的元素只有一个,中位数就是该元素的值;当数组元素个数为偶数时,处于中间位置的元素只有两个,中位数就是这两个元素的简单算术平均数)
(4)主函数的功能:定义一个是长度为8的double型数组,通过调用array_input()输入各元素的值,再调用select_sort()对数组各元素排序,之后调用median()得到中位数,最后输出结果;
(5)主函数在前,上述三个函数在后面定义。程序运行如下图所示

已通过测试,望采纳
#include <stdio.h>
void main()
{ void array_input(double array[],int n);
void select_sort(double array[],int n);
double median(double array[],int n);
double d[8],med;
printf("请输入double型数组的8个元素:\n");
array_input(d,8);
select_sort(d,8);
med=median(d,8);
printf("数组d各元素的中位数:");
printf("%lf\n",med);
getch();
}
void array_input(double array[],int n)
{ int i;
for(i=0;i<n;i++)
scanf("%lf",&array[i]);
}
void select_sort(double array[],int n)
{ int i,j;
double t;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(array[j]>array[j+1])
{ t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
double median(double array[],int n)
{ double m;
int t;
t=(int)(n/2);
if(n%2!=0)
m=array[t];
else
{ m=array[t-1];
m+=array[t];
m/=2;
}
return m;
}
温馨提示:答案为网友推荐,仅供参考
相似回答