使用C++写一个完整代码,封装一个一维数组类double A[m],能通过成员函数得到数组均值、最大值、最小值以及最大、最小值所在的位置。使用using namespace std类型
时间: 2024-12-02 16:16:34 浏览: 28
C++两个一维数组相加求和
```cpp
#include <iostream>
#include <vector>
template<int m>
class ArrayWrapper {
private:
double A[m];
public:
// 构造函数
ArrayWrapper(double arr[]) {
for (int i = 0; i < m; ++i) {
A[i] = arr[i];
}
}
// 计算并返回数组的平均值
double getAverage() const {
double sum = 0;
for (double num : A) {
sum += num;
}
return sum / m;
}
// 返回数组的最大值及其索引
double getMaxValueAndIndex(int& index) const {
double max_val = A[0];
index = 0;
for (int i = 1; i < m; ++i) {
if (A[i] > max_val) {
max_val = A[i];
index = i;
}
}
return max_val;
}
// 返回数组的最小值及其索引
double getMinValueAndIndex(int& index) const {
double min_val = A[0];
index = 0;
for (int i = 1; i < m; ++i) {
if (A[i] < min_val) {
min_val = A[i];
index = i;
}
}
return min_val;
}
};
int main() {
using namespace std;
// 示例数组
double arr[] = {5, 2, 9, 1, 7};
int array_size = sizeof(arr) / sizeof(arr[0]);
ArrayWrapper<double> wrapper(arr, array_size);
double average;
cout << "Array Average: " << wrapper.getAverage() << endl;
int max_index;
double max_value = wrapper.getMaxValueAndIndex(max_index);
cout << "Max Value: " << max_value << ", Index: " << max_index << endl;
int min_index;
double min_value = wrapper.getMinValueAndIndex(min_index);
cout << "Min Value: " << min_value << ", Index: " << min_index << endl;
return 0;
}
```
在这个代码示例中,我们创建了一个模板类`ArrayWrapper`来封装一维双精度数组。它包含计算平均值、找到最大值和最小值以及它们索引的方法。在`main`函数中,我们创建了一个`ArrayWrapper`实例,并展示了如何获取这些信息。
阅读全文