|
发表于 2021-10-14 01:24:42
|
显示全部楼层
- #include <stdio.h>
- void show(int d[] , int n)
- {
- int i ;
- for(i = 0 ; i < n ; i ++) {
- if(i) printf(" , ") ;
- printf("%d" , d[i]) ;
- }
- printf("\n") ;
- }
- void sort(int d[] , int n)
- {
- int i , j , t ;
- for(i = 0 ; i < n - 1 ;i ++) {
- for(j = i + 1 ; j && d[j] < d[j - 1]; j --) {
- t = d[j] ;
- d[j] = d[j - 1] ;
- d[j - 1] = t ;
- }
- }
- }
- int main(void)
- {
- int d[] = {18 , 22 , 33 , 1 , 5 , 28 , 35 , 4 , 3 , 55 , 108 , 11 , 2 , 6 , 2800 , 88} , i , j , k = 16 , m ;
- show(d , k) ;
- sort(d , k) ;
- show(d , k) ;
- for(i = m = 0 ; i < k ; i ++) m += d[i] ;
- printf("最小值:%lf\n" , (double) d[0]) ;
- printf("最大值:%lf\n" , (double) d[k - 1]) ;
- printf("平均值:%lf\n" , (double) (m * 1.0 / 16)) ;
- if(k % 2) printf("中位数:%lf\n" , (double) d[k / 2]) ;
- else if(k > 1) printf("中位数:%lf\n" , (double) ((d[k / 2 - 1] + d[k / 2]) / 2.0)) ;
- else if(k == 1) printf("中位数:%lf\n" , (double) d[0]) ;
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 18 , 22 , 33 , 1 , 5 , 28 , 35 , 4 , 3 , 55 , 108 , 11 , 2 , 6 , 2800 , 88
- 1 , 2 , 3 , 4 , 5 , 6 , 11 , 18 , 22 , 28 , 33 , 35 , 55 , 88 , 108 , 2800
- 最小值:1.000000
- 最大值:2800.000000
- 平均值:201.187500
- 中位数:20.000000
- D:\00.Excise\C>
复制代码 |
|