封装一个一维数组类double A[m],能通过成员函数得到数组均值、最大值、最小值以及最大、最小值所在的位置。
时间: 2024-11-20 15:34:36 浏览: 12
封装一个名为`DoubleArray`的一维数组类,用于存储`double`类型的元素,可以实现如下的功能:
```cpp
class DoubleArray {
private:
int m; // 数组长度
double* arr; // 数组元素指针
public:
// 构造函数
DoubleArray(int size) : m(size), arr(new double[size]) {}
// 析构函数
~DoubleArray() { delete[] arr; }
// 成员函数获取均值
double getAverage() const {
if (m == 0) return 0;
double sum = 0;
for (int i = 0; i < m; ++i)
sum += arr[i];
return sum / m;
}
// 成员函数获取最大值及其索引
double getMaxValueAndIndex(int& index) const {
double max = arr[0];
index = 0;
for (int i = 1; i < m; ++i) {
if (arr[i] > max) {
max = arr[i];
index = i;
}
}
return max;
}
// 成员函数获取最小值及其索引
double getMinValueAndIndex(int& index) const {
double min = arr[0];
index = 0;
for (int i = 1; i < m; ++i) {
if (arr[i] < min) {
min = arr[i];
index = i;
}
}
return min;
}
// 其他成员函数可根据需要添加
};
// 使用示例
int main() {
DoubleArray myArray(5);
// 初始化数组...
double average = myArray.getAverage();
int maxIndex;
double maxValue = myArray.getMaxValueAndIndex(maxIndex);
int minIndex;
double minValue = myArray.getMinValueAndIndex(minIndex);
std::cout << "Average: " << average << "\n";
std::cout << "Max Value: " << maxValue << ", at index: " << maxIndex << "\n";
std::cout << "Min Value: " << minValue << ", at index: " << minIndex << "\n";
return 0;
}
```
阅读全文