您的位置:首页 > 其它

交换一维数组中最大、最小元素

2017-08-01 19:16 387 查看
/*
建立一个类 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}对该类进行测试。
*/
#include<iostream>
using namespace std;

class MOVE
{
private:
int *arr;
int n;
public:
MOVE(int b[], int m);
void exchange();
void print();
~MOVE();
};

MOVE::MOVE(int b[], int m)
{
arr = new int;
arr = b;
n = m;
}

void MOVE::exchange()
{
//寻找最大最小值以及所在位置
int *temp_arr = arr;
int min = *temp_arr, max = *temp_arr;
int min_num = 0, max_num = 0;
for (int i = 0; i < n; i++)
{
if (*temp_arr < min)
{
min = *temp_arr;
min_num = i;
}
if (*temp_arr > max)
{
max = *temp_arr;
max_num = i;
}
temp_arr++;
}
//交换最大、最小值
int temp_swap;
temp_swap = *(arr + min_num);
*(arr + min_num) = *(arr + max_num);
*(arr + max_num) = temp_swap;
}

void MOVE::print()
{
for (int i = 0; i < n; i++)
{
cout << *(arr + i) << '\t';
}
cout << endl;
}

MOVE::~MOVE()
{
delete arr;
}

int main()
{
int s[] = { 21,65,43,87,12,84,44,97,32,55 };
MOVE move(s, 10);
move.exchange();
move.print();
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐