42.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。
具体要求如下:
- 私有数据成员
- int *array:一维整型数组。
- int n:数组中元素的个数。
- 公有成员函数
- MOVE(int b[],int m):构造函数,初始化成员数据。
- void exchange():输出平均值,并将数组中的元素按要求重新放置。
- void print():输出一维数组。
- ~MOVE():析构函数。
- 在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试
#include<iostream>
using namespace std;
class MOVE{
int *array,n;
public:
MOVE(int a[],int m){
n = m;
if(m)array = new int[m];
for(int i=0;i<n;i++)array[i] = a[i];
}
void exchange(){
int max_index = 0,min_index = 0,t;
double ave = 0;
for(int i=0;i<n;i++){
if(array[i]>array[max_index])max_index = i;
if(array[i]<array[min_index])min_index = i;
ave += array[i];
}
ave/=n;
t = array[max_index];
array[max_index] = array[min_index];
array[min_index] = t;
cout<<"ave:"<<ave<<endl;
}
void print(){
for(int i=0;i<n;i++)cout<<array[i]<<'\t';
cout<<endl;
}
~MOVE(){
if(array)delete[]array;
}
};
using namespace std;
int main(){
int a[]={21,65,43,87,12,84,44,97,32,55};
int n=sizeof(a)/4;
MOVE obj(a,n);
cout<<"before moving:"<<endl;
obj.print();
obj.exchange();
cout<<"after moving:"<<endl;
obj.print();
system("pause");
return 0;
}