建立一个类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-03-01 21:56:06 浏览: 91
基于C++,在主函数中输入10个整数到数组中,调用函数move()完成将数组元素循环移动k位,适合新手
5星 · 资源好评率100%
好的,下面是代码实现:
```c++
#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 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 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};
MOVE test(b, 10);
test.exchange();
test.print();
return 0;
}
```
输出结果为:
```
21 65 43 12 87 84 44 97 32 55
```
解释一下,我们首先定义了一个 `MOVE` 类,然后在构造函数中首先初始化了数组和元素个数,这里用到了动态数组的申请方式。接着在 `exchange` 函数中,我们找到了最大元素和最小元素的下标,然后交换它们的值。最后在 `print` 函数中输出重新排列后的一维数组。注意,我们在析构函数中释放了动态数组的内存空间。在 `main` 函数中,我们首先定义了一个大小为 10 的数组 `b`,然后用它来进行 `MOVE` 类的测试。
阅读全文