题解:P5738 【深基7.例4】歌唱比赛

· · 题解

题解:P5738 【深基7.例4】歌唱比赛。

题意:

n 名同学接受 m 名评委的评分,每名同学得分去掉一个最高分和最低分,剩下 m − 2 个评分的平均数就是最终得分,求最高的得分。

解法:

  1. 先算每名同学的总得分。

  2. 再减去最低分和最高分。

  3. 记录最高的总得分。

  4. 输出最高得分除以 m-2 即可。

  5. 记得保留 2 位小数。

code

#include<bits/stdc++.h>
using namespace std;
double a[105][25];
double q[105];
double w[105];
int main(){
    int n,m;
    cin>>n>>m;
    double sum=0;
    for(int i=1;i<=n;i++){
        w[i]=15;
    }
    for(int i=1;i<=n;i++){ 
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
            w[i]=min(a[i][j],w[i]);
            q[i]=max(a[i][j],q[i]);//记录最高分和最低分。
        }
    }

    for(int i=1;i<=n;i++){
        double s=0;
        for(int j=1;j<=m;j++){
            s+=a[i][j];//计算每名同学的总得分。
        }
        s-=w[i];
        s-=q[i];//减去最低分和最高分。
        sum=max(sum,s);//记录最高的总得分。
    } 
    printf("%.2lf",sum/(m-2));
}