TB椰程 TypeBuddy 打字搭子

打分

洛谷·深入浅出 · 代码 · cpp · 难度 3/5 · 共 542 字

去掉一个最高一个最低,求平均(2 位小数)

  • 洛谷
  • 练习

正文

// 原题:https://oj.yecheng.tv/p/1391
// 题意:n 个评委打分(0-10),去掉一个最高与一个最低,求平均分(2 位小数)。
// 思路:累加并维护最大最小,和减去 max、min 后除以 n-2。
// 复杂度:O(n)。
// 易错点:多个最高/最低也只去掉各一个;除的是 n-2 不是 n。
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    int n, x, sum = 0, mx = -1, mn = 11;
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> x;
        sum += x;
        if(x > mx) mx = x;
        if(x < mn) mn = x;
    }
    double avg = (double)(sum - mx - mn) / (n - 2);
    cout << fixed << setprecision(2) << avg << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK