洛谷刷题C++语言 | P5738 歌唱比赛

学习C++从娃娃抓起!记录下洛谷C++学习和备考过程中的题目,记录每一个瞬间。

附上汇总贴:洛谷刷题C++语言 | 汇总_热爱编程的通信人的博客-CSDN博客


【题目描述】

n(n≤100) 名同学参加歌唱比赛,并接受 m(m≤20) 名评委的评分,评分范围是 0 到 10 分。这名同学的得分就是这些评委给分中去掉一个最高分,去掉一个最低分,剩下 m−2 个评分的平均数。请问得分最高的同学分数是多少?评分保留 2 位小数。

【输入】

第一行两个整数 n,m。 接下来 n 行,每行各 m 个整数,表示得分。

【输出】

输出分数最高的同学的分数,保留两位小数。

【输入样例】

7 6
4 7 2 6 10 7
0 5 0 10 3 10
2 6 8 4 3 6
6 3 6 7 5 8
5 9 3 3 8 1
5 9 9 3 2 0
5 8 0 4 1 10

【输出样例】

6.00

【代码详解】

#include <bits/stdc++.h>
using namespace std;
double judge(int m) {
    int max, min, sum=0, tmp;
    double ans;
    cin >> tmp;
    max = tmp;
    min = tmp;
    sum += tmp;
    for (int i=2; i<=m; i++) {
        cin >> tmp;
        if (tmp>max) max = tmp;
        if (tmp<min) min = tmp;
        sum += tmp;
    }
    sum -= max+min;
    ans = 1.0 * sum / (m-2);
    return ans;
}
int main()
{
    int n, m;
    double ans = -1, tmp;
    cin >> n >> m;
    for (int i=1; i<=n; i++) {
        tmp = judge(m);  //计算某一名同学评分
        if (ans < tmp) {
            ans = tmp;
        }
    }
    printf("%.2f", ans);
    return 0;
}

【运行结果】

7 6
4 7 2 6 10 7
0 5 0 10 3 10
2 6 8 4 3 6
6 3 6 7 5 8
5 9 3 3 8 1
5 9 9 3 2 0
5 8 0 4 1 10
6.00

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/132800255
今日推荐