建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。 具体要求如下: (1)私有数据成员 int *array:一维整型数组。 int n:数组中元素的个数。 (2)公有成员函数 MOVE(int b[],int m):构造函数,初始化成员数据。 void exchange():输出平均值,并将数组中的元素按要求重新放置。 void print():输出一维数组。 ~MOVE():析构函数。 (3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。
时间: 2024-02-29 09:52:12 浏览: 32
好的,根据你的要求,我来为你演示代码:
```cpp
#include<iostream>
using namespace std;
class MOVE {
private:
int *array; // 数组指针
int n; // 数组元素个数
public:
MOVE(int b[], int m); // 构造函数
void exchange(); // 交换最大值和最小值
void print(); // 输出数组
~MOVE(); // 析构函数
};
MOVE::MOVE(int b[], int m) {
n = m;
array = new int[n];
for(int i = 0; i < n; i++) {
array[i] = b[i];
}
}
void MOVE::exchange() {
int max_index = 0, min_index = 0;
for(int i = 1; i < n; i++) {
if(array[i] > array[max_index]) {
max_index = i;
}
if(array[i] < array[min_index]) {
min_index = i;
}
}
int temp = array[max_index];
array[max_index] = array[min_index];
array[min_index] = temp;
}
void MOVE::print() {
for(int i = 0; i < n; i++) {
cout << array[i] << " ";
}
cout << endl;
}
MOVE::~MOVE() {
delete [] array;
}
int main() {
int b[] = {21, 65, 43, 87, 12, 84, 44, 97, 32, 55};
int m = sizeof(b) / sizeof(b[0]);
MOVE move(b, m);
cout << "原始数组:";
move.print();
move.exchange();
cout << "交换最大值和最小值后的数组:";
move.print();
return 0;
}
```
输出结果如下:
```
原始数组:21 65 43 87 12 84 44 97 32 55
交换最大值和最小值后的数组:97 65 43 87 12 84 44 21 32 55
```
阅读全文