一个类MOVE,将数组中最大元素的值与最小元素的值互换。 具体要求如下: (1)私有数据成 int *array: int n:数组中元素的个数。
时间: 2024-09-09 10:14:49 浏览: 54
在C++中,要创建一个类`MOVE`,其功能是将数组中最大元素的值与最小元素的值互换,我们首先需要定义类的私有成员变量来存储数组和数组的大小。然后,在公有成员函数中实现查找最大和最小元素并进行交换的逻辑。以下是一个简单的示例实现:
```cpp
#include <iostream>
using namespace std;
class MOVE {
private:
int *array; // 指向整型数组的指针
int n; // 数组中元素的个数
public:
// 构造函数,初始化数组和大小
MOVE(int *arr, int size) : n(size) {
array = new int[n];
for (int i = 0; i < n; ++i) {
array[i] = arr[i];
}
}
// 析构函数,释放动态分配的内存
~MOVE() {
delete[] array;
}
// 方法:交换数组中的最大和最小元素
void swapMinMax() {
if (n > 1) {
int minIndex = 0, maxIndex = 0;
// 查找最小和最大元素的索引
for (int i = 1; i < n; ++i) {
if (array[i] < array[minIndex]) {
minIndex = i;
}
if (array[i] > array[maxIndex]) {
maxIndex = i;
}
}
// 交换最大和最小元素
int temp = array[minIndex];
array[minIndex] = array[maxIndex];
array[maxIndex] = temp;
}
}
// 用于打印数组的方法,便于测试
void printArray() const {
for (int i = 0; i < n; ++i) {
cout << array[i] << " ";
}
cout << endl;
}
};
// 主函数,用于测试MOVE类
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
MOVE move(arr, sizeof(arr)/sizeof(arr[0]));
cout << "原始数组: ";
move.printArray();
move.swapMinMax();
cout << "交换后的数组: ";
move.printArray();
return 0;
}
```
在这个类的实现中,我们首先通过构造函数接收一个整型数组和它的大小,并将这个数组复制到类的私有成员变量中。然后,我们定义了一个`swapMinMax`方法来查找最大和最小元素的索引,并交换它们的值。最后,我们提供了一个`printArray`方法来打印数组,以便测试我们的类是否正确工作。
阅读全文