这是一个比赛评分时要求去掉最高分和最低分,然后对剩下的得分求平均值的问题。现在有10个评委打分,需要输入你的10个分数,去掉最高和最低分后计算平均得分,并输出平均分。用c++
时间: 2024-02-24 08:53:03 浏览: 113
去掉一个最高分一个最低分,求平均值
5星 · 资源好评率100%
好的,以下是用C++实现该功能的代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含max和min函数的头文件
using namespace std;
int main() {
vector<double> scores; // 存储分数的向量
double score;
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个评委的分数:";
cin >> score;
scores.push_back(score);
}
double highest = *max_element(scores.begin(), scores.end()); // 找到最高分
double lowest = *min_element(scores.begin(), scores.end()); // 找到最低分
scores.erase(find(scores.begin(), scores.end(), highest)); // 删除最高分
scores.erase(find(scores.begin(), scores.end(), lowest)); // 删除最低分
double sum = 0;
for (double s : scores) {
sum += s;
}
double average = sum / 8; // 10个分数去掉最高分和最低分后剩余8个
cout << "去掉最高分和最低分后,平均得分为:" << average << endl;
return 0;
}
```
这个代码中,我们使用了STL中的向量来存储分数,并使用算法库中的max_element和min_element函数来找到最高分和最低分。然后,我们使用vector::erase方法来从向量中删除最高分和最低分。最后,我们计算剩余分数的总和并除以8来得到平均分数。
阅读全文