建立一个类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-15 15:03:54 浏览: 68
好的,以下是代码实现:
```
#include <iostream>
using namespace std;
class MOVE{
private:
int *array;
int n;
public:
MOVE(int b[], int m){
n = m;
array = new int[n];
for(int i=0; i<n; i++){
array[i] = b[i];
}
}
void exchange(){
int maxIndex = 0, minIndex = 0;
int maxValue = array[0], minValue = array[0];
for(int i=1; i<n; i++){
if(array[i] > maxValue){
maxValue = array[i];
maxIndex = i;
}
if(array[i] < minValue){
minValue = array[i];
minIndex = i;
}
}
// 交换最大值和最小值
int temp = array[maxIndex];
array[maxIndex] = array[minIndex];
array[minIndex] = temp;
}
void print(){
for(int i=0; i<n; i++){
cout << array[i] << " ";
}
cout << endl;
}
~MOVE(){
delete [] array;
}
};
int main(){
int b[] = {21,65,43,87,12,84,44,97,32,55};
int m = 10;
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
```
注:以上代码实现是将数组中最大元素的值与最小元素的值互换,而非将最大元素与最小元素的位置互换。
阅读全文