knight_15 2023-12-02 08:52 采纳率: 90.9%
浏览 4
已结题

循环结构程序设计 平均分

问题描述
我们都知道怎么求平均数,即 ( A1+A2+……+An ) / n,这显然是很简单的。不过一般一些比赛中各个评分是要去掉最高分和最低分的,然后对剩下的得分求平均。现在需要你对输入的数去掉最高分和最低分后求平均分,并输出。

输入描述
有多组测试用例,输入文件的第一行有一个正整数n(n≤300),表示有n组测试用例。每组测试用例有两行:第一行一个正整数m(3≤m≤10000),表示有m个评分,接下来一行有m个用空格隔开的0-100范围内double类型实数,表示相应的得分。

输出描述
每组测试用例分别输出一行,每行对应一个平均得分(保留小数点后2位)。

样例输入
2
3
90 84.5 82.5
8
80 80 80 80 80 80 80 80

样例输出
84.50
80.00

  • 写回答

2条回答 默认 最新

  • 梦回阑珊 2023-12-02 09:17
    关注

    回复不易,麻烦关注下博主,后面还有问题直接私信我,谢谢!!!

    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <iomanip> // 用于输出小数点后两位
    
    using namespace std;
    
    void averageScore(const vector<double>& scores) {
        // 复制评分
        vector<double> sortedScores = scores;
        
        // 排序
        sort(sortedScores.begin(), sortedScores.end());
        
        // 去掉最高分和最低分
        sortedScores.erase(sortedScores.begin());
        sortedScores.pop_back();
        
        // 计算平均得分
        double sum = 0.0;
        for (double score : sortedScores) {
            sum += score;
        }
        
        double avg = sum / sortedScores.size();
        
        // 保留小数点后两位并输出
        cout << fixed << setprecision(2) << avg << endl;
    }
    
    int main() {
        int testCases;
        cin >> testCases;
    
        for (int i = 0; i < testCases; ++i) {
            int m;
            cin >> m;
    
            vector<double> scores(m);
    
            for (int j = 0; j < m; ++j) {
                cin >> scores[j];
            }
    
            // 计算并输出平均得分
            averageScore(scores);
        }
    
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 12月2日

悬赏问题

  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗