用C++语言编写程序
建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。具体要求如下:
(1)私有数据成员
float array[20]:一维整型数组。
int n:数组中元素的个数。
(2)公有成员函数
MOVE(float b[],int m):构造函数,初始化成员数据。
void average():输入平均值,并将数组中的元素按要求重新放置。
void print():输出一维数组。
(3)在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试
#include <iostream.h>
class MOVE
{
public:
// MOVE(float b[],int m); //构造函数,初始化成员数据。
// void average():输入平均值,并将数组中的元素按要求重新放置。
// void print():输出一维数组。
MOVE(float b[], int m)
{
for (int i=0; i<m; i++)
{
array[i] = b[i];
}
n = m;
}
void average()
{
cout << "请输入平均值:" << endl;
float avg;
cin >> avg;
// 进行"左右分" 操作
float nTmp[20] = { 0 };
int nSmallCount = 0;
int nBigCount = 0;
for (int i=0; i<n; i++)
{
if (array[i] <= avg)
{
nTmp[nSmallCount] = array[i];
nSmallCount++;
}
else
{
nBigCount++;
nTmp[n - nBigCount] = array[i];
}
}
for (i=0; i<n; i++)
{
array[i] = nTmp[i];
}
}
void print()
{
for (int i=0; i<n; i++)
{
cout << array[i] << ends ;
}
cout << endl;
}
private:
float array[20]; //一维整型数组。
int n; //数组中元素的个数。
};
void main()
{
float array[] = {1.3f,6.2f, 3, 9.1f, 4.8f, 7.4f, 5.6f, 9.2f, 2.3f};
// 构造对象
MOVE test(array, 9);
// 打印远数据:
test.print();
// 进行"小的在左边, 大的在右边" 的操作
test.average();
// 打印操作执行完后的结果:
test.print();
}