C++编写一个在歌唱比赛中,共有10位评委进行打分,在计算歌手得分时,去掉一个最高分,去掉一个最低分,然后剩余的8位评委的分数进行平均,就是该选手的最终得分。如果已知每个评委的评分,求该选手的得分。
时间: 2024-10-20 21:17:20 浏览: 38
在C++中,你可以通过以下几个步骤来实现这个功能:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
double calculateScore(std::vector<int>& scores) {
// 检查输入是否合法
if (scores.empty() || scores.size() != 10) {
std::cerr << "Invalid input. There should be exactly 10 scores." << std::endl;
return 0;
}
// 排序评委分数
std::sort(scores.begin(), scores.end());
// 取出最高分和最低分
int highest = scores.back();
int lowest = scores.front();
// 去掉最高分和最低分
scores.erase(scores.end() - 1);
scores.erase(scores.begin());
// 计算并返回剩余评委的平均分
double average = static_cast<double>(std::accumulate(scores.begin(), scores.end(), 0)) / scores.size();
return average;
}
int main() {
std::vector<int> scores = {75, 90, 85, 92, 88, 80, 95, 87, 83, 86}; // 举例评委评分
double finalScore = calculateScore(scores);
std::cout << "The singer's final score is: " << finalScore << std::endl;
return 0;
}
```
在这个程序里,我们首先检查评分数组的有效性,然后对数组进行排序,取出最高分和最低分,再从原数组中移除这两个值,最后计算剩下的8个评分的平均分作为最终得分。
阅读全文