用c++去掉最高最低分求平均分
时间: 2024-04-18 22:27:16 浏览: 131
您好!对于您的问题,您可以使用C++编程语言来实现去掉最高最低分求平均分的功能。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
double calculateAverage(std::vector<int>& scores) {
if (scores.size() <= 2) {
return 0; // 如果成绩数量小于等于2个,则无法去掉最高最低分计算平均分
}
// 找到最高和最低分的索引
auto minmax = std::minmax_element(scores.begin(), scores.end());
int minIndex = minmax.first - scores.begin();
int maxIndex = minmax.second - scores.begin();
// 去掉最高和最低分
scores.erase(scores.begin() + maxIndex);
scores.erase(scores.begin() + minIndex < maxIndex ? minIndex : minIndex - 1);
// 计算平均分
double sum = 0;
for (int score : scores) {
sum += score;
}
return sum / scores.size();
}
int main() {
std::vector<int> scores = { 90, 85, 92, 88, 95 };
double average = calculateAverage(scores);
std::cout << "平均分:" << average << std::endl;
return 0;
}
```
在上面的示例代码中,我们使用了一个名为`calculateAverage`的函数来实现去掉最高最低分求平均分的功能。该函数接受一个整型向量(即存储成绩的容器)作为参数,并使用`std::minmax_element`函数找到最高和最低分的索引。然后,我们调用`erase`函数来移除这两个分数。最后,我们遍历剩余的分数,计算平均分并返回结果。
请注意,此示例代码假设分数是存储在一个整型向量中的整数,并且假设至少有3个成绩。您可以根据自己的需求进行修改。
阅读全文