对一组浮点数据,去除最大值和最小值,剩下的取平均值,C++代码实现和调用
时间: 2024-04-14 21:31:21 浏览: 21
您好!要实现对一组浮点数据去除最大值和最小值,并计算剩下数值的平均值,可以使用以下C++代码实现:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
float calculateAverage(std::vector<float> data) {
// 检查数据是否为空
if (data.empty()) {
return 0.0f;
}
// 找出最大值和最小值的迭代器
auto maxIter = std::max_element(data.begin(), data.end());
auto minIter = std::min_element(data.begin(), data.end());
// 去除最大值和最小值
data.erase(maxIter);
data.erase(minIter);
// 计算剩下数值的总和
float sum = 0.0f;
for (float num : data) {
sum += num;
}
// 计算平均值
float average = sum / data.size();
return average;
}
int main() {
// 示例使用
std::vector<float> data = {2.5, 1.8, 3.2, 4.6, 2.1};
float average = calculateAverage(data);
std::cout << "平均值: " << average << std::endl;
return 0;
}
```
您可以将您的浮点数据存储在一个vector中,然后调用`calculateAverage()`函数来计算去除最大值和最小值后的平均值。这段代码会输出计算得到的平均值。
希望对您有所帮助!如有其他问题,请随时提问。