猿问

编程求数组各元素的中位数,要求如下:

编程求数组各元素的中位数,要求如下: (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)主函数在前,上述三个函数在后面定义。程序运行如下图所示:
SUNMOON1
浏览 1827回答 1
1回答

望远

#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"); }
随时随地看视频慕课网APP
我要回答