封装一个一维数组类double A[m],能通过成员函数得到数组均值、最大值、最小值以及最大、最小值所在的位置。 用C++
时间: 2024-12-23 16:26:59 浏览: 1
在C++中,我们可以封装一个一维数组类`DoubleArray`,以便提供获取平均值、最大值、最小值及其位置的功能。以下是简单的类实现:
```cpp
#include <iostream>
#include <vector>
class DoubleArray {
private:
int m; // 数组长度
double* arr; // 一维数组
public:
// 构造函数
DoubleArray(int size) : m(size), arr(new double[size]) {}
// 析构函数
~DoubleArray() { delete[] arr; }
// 成员函数 - 设置数组元素
void set(double value, int index) {
if (index >= 0 && index < m)
arr[index] = value;
else
std::cout << "Index out of range.\n";
}
// 成员函数 - 获取并返回数组的平均值
double getAverage() const {
double sum = 0;
for (int i = 0; i < m; i++)
sum += arr[i];
return sum / m;
}
// 成员函数 - 返回数组的最大值
double getMax() const {
double max_value = arr[0];
for (int i = 1; i < m; i++) {
if (arr[i] > max_value)
max_value = arr[i];
}
return max_value;
}
// 成员函数 - 返回数组的最大值位置
int getMaxPosition() const {
double max_value = arr[0];
int position = 0;
for (int i = 1; i < m; i++) {
if (arr[i] > max_value) {
max_value = arr[i];
position = i;
}
}
return position;
}
// 类似地,你可以添加getMin(), getMinPosition() 函数
// ...
};
// 示例使用
int main() {
DoubleArray array(5);
array.set(10, 0);
array.set(20, 1);
array.set(15, 2);
array.set(30, 3);
array.set(5, 4);
std::cout << "Average: " << array.getAverage() << std::endl;
std::cout << "Max Value: " << array.getMax() << ", Position: " << array.getMaxPosition() << std::endl;
return 0;
}
```
在这个例子中,我们使用了`std::vector`来实现动态数组,而不是固定大小的一维数组,因为`vector`提供了自动调整大小的优势。如果你确实需要固定大小数组,记得替换相应的部分。
阅读全文