編程求數(shù)組各元素的中位數(shù),要求如下:
(1)void array_input(double a[], int n)的功能是:輸入double型數(shù)組a的各元素值,參數(shù)n是數(shù)組元素的個(gè)數(shù);
(2)void bubble_sort(double a[], int n)函數(shù)實(shí)現(xiàn)從小到大冒泡排序功能,參數(shù)n是數(shù)組元素的個(gè)數(shù);
(3)double median(double a[], int n)的功能是:求出有序數(shù)組array各元素的中位數(shù),參數(shù)n是數(shù)組元素的個(gè)數(shù);
(說明:中位數(shù)就是在已排序的各元素中,處于中間位置的元素值:當(dāng)數(shù)組元素個(gè)數(shù)為奇數(shù)時(shí),處于中間位置的元素只有一個(gè),中位數(shù)就是該元素的值;當(dāng)數(shù)組元素個(gè)數(shù)為偶數(shù)時(shí),處于中間位置的元素只有兩個(gè),中位數(shù)就是這兩個(gè)元素的簡(jiǎn)單算術(shù)平均數(shù))
(4)void array_print(double a[],int n)功能是打印輸出數(shù)組
(5)主函數(shù)的功能:定義一個(gè)是長(zhǎng)度為8的double型數(shù)組,通過調(diào)用array_input()輸入各元素的值,再調(diào)用select_sort()對(duì)數(shù)組各元素排序,之后調(diào)用median()得到中位數(shù),最后輸出結(jié)果;
(6)主函數(shù)在前,上述三個(gè)函數(shù)在后面定義。程序運(yùn)行如下圖所示:
1 回答
已采納

望遠(yuǎn)
TA貢獻(xiàn)1017條經(jīng)驗(yàn) 獲得超1032個(gè)贊
#include?<stdio.h> void?main() { //函數(shù)聲明 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("中位數(shù)為%.3lf\n",m); array_print(arr,n); } /** 輸入double型數(shù)組a的各元素值,參數(shù)n是數(shù)組元素的個(gè)數(shù) **/ void?array_input(double?a[],?int?n) { printf("請(qǐng)輸入數(shù)據(jù)%d個(gè)數(shù)據(jù)(以空格分隔):\n",n); for(int?i=0;i<n;i++) { scanf("%lf",&a[i]); } } /** 函數(shù)實(shí)現(xiàn)從小到大冒泡排序功能,參數(shù)n是數(shù)組元素的個(gè)數(shù) **/ 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; } } } } /** 求出有序數(shù)組array各元素的中位數(shù),參數(shù)n是數(shù)組元素的個(gè)數(shù) **/ 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; } /** 打印輸出數(shù)組 **/ void?array_print(double?a[],int?n) { printf("數(shù)組從小到大打印輸出為:\n"); for(int?i=0;i<n;i++) { printf("%.3lf?",a[i]); } printf("\n"); }
- 1 回答
- 0 關(guān)注
- 1903 瀏覽
添加回答
舉報(bào)
0/150
提交
取消