| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 88049 | bnu_fanmeijie | 唱歌比赛 | C++ | 通过 | 0 MS | 260 KB | 1251 | 2026-05-07 17:57:05 |
#include <iostream> #include <cstdio> using namespace std; // 函数:计算去掉最高最低分后的平均分 double calcScore(int scores[], int m) { int maxScore = scores[0]; int minScore = scores[0]; int sum = 0; // 找最大最小值,同时求和 for (int i = 0; i < m; i++) { if (scores[i] > maxScore) maxScore = scores[i]; if (scores[i] < minScore) minScore = scores[i]; sum += scores[i]; } // 去掉最高和最低,求平均 sum = sum - maxScore - minScore; return (double)sum / (m - 2); } int main() { int n, m; cin >> n >> m; double maxAvg = 0; // 记录最高得分 for (int i = 0; i < n; i++) { int scores[25]; // m <= 20,数组开大一点 // 读入第 i 个同学的 m 个评分 for (int j = 0; j < m; j++) { cin >> scores[j]; } // 计算该同学得分 double avg = calcScore(scores, m); // 更新最高得分 if (avg > maxAvg) { maxAvg = avg; } } // 输出最高得分,保留两位小数 printf("%.2f\n", maxAvg); return 0; }