C++编写函数,实现评委打分,统计时去掉一个最高分和一编写函数,实现评委打分,统计时去掉一个最高分和一 个最低分,其余分数的平均分即是最后得分。个最低分,其余分数的平均分即
时间: 2024-10-05 07:04:44 浏览: 31
在C++中,我们可以创建一个函数来计算评委打分的平均分,同时排除最高分和最低分。这里是一个简单的例子:
```cpp
#include <iostream>
#include <vector>
double calculateScore(std::vector<int> scores) {
// 检查评分向量是否为空或只有一个元素
if (scores.empty() || scores.size() == 1) {
std::cout << "Invalid input, cannot remove highest and lowest score." << std::endl;
return 0; // 或者返回错误处理的结果
}
// 排序分数
std::sort(scores.begin(), scores.end());
// 计算非最高和最低分的总和
int sum = 0;
for (int i = 1; i < scores.size() - 1; i++) { // 避免第一个和最后一个
sum += scores[i];
}
// 计算并返回平均分
double average = static_cast<double>(sum) / (scores.size() - 2);
return average;
}
int main() {
std::vector<int> scores = {85, 90, 95, 88, 92};
double result = calculateScore(scores);
std::cout << "Final score after removing highest and lowest: " << result << std::endl;
return 0;
}
```
这个函数`calculateScore`接受一个整数向量作为输入,对它们进行排序,然后计算除了两端的最高分和最低分之外所有分数的平均值。注意,由于我们直接修改了原数组,所以这不是一个真正的“安全”版本,实际应用中你可能需要复制一份副本来进行操作。
阅读全文