c语言骑行距离相关计算

问题描述如下:

 

 

 由题目可见,只需给出两个接口名就行了,但是我为了检测是否正确,把裁判程序也打出来了。

#include <stdio.h>
#define N 50
//输出数组中的最大值,最小值,平均值
void dispMaxMinAvg(double dDistance[],int n){
    int i;
    double max,min,sum;
    max=dDistance[0];
    min=dDistance[0];
    sum=0.0;
    for(i=0;i<n;i++){
        if(max<dDistance[i]){
            max=dDistance[i];
        }
        if(min>dDistance[i]){
            min=dDistance[i];
        }
        sum+=dDistance[i];
    }
    printf("Max=%.2f,Min=%.2f,Avg=%.2f\n",max,min,sum/n);
}
//对已经升序排列后的数组,返回中位数
double getMedian(double dDistance[],int n){
    if(n%2==0){
        double me;
        me=(dDistance[n/2]+dDistance[n/2-1])/2;
        return me;
    }
    else{
        double me;
        me=dDistance[(n+1)/2-1];
        return me;
    }
}
int main()
{
    int n,i,j;//n表示输入多少个数据
    double dDis[N]={0},temp;//数组最多50个元素,先初始化为0
    //输入数据
    scanf("%d",&n);
    for(i=0;i<n;i++){
            scanf("%lf",&dDis[i]);
        }
    //调用函数,打印距离的最大值,最小值,平均值
    dispMaxMinAvg(dDis,n);
    //在求中位数之前,对数组进行排序
    for(i=0;i<n;i++){
            for(j=i+1;j<n;j++){
                    if(dDis[i]>dDis[j]){
                        temp=dDis[i];
                        dDis[i]=dDis[j];
                        dDis[j]=temp;
                    }
            }
    }
    printf("Median=%.2f",getMedian(dDis,n));
    return 0;
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值