A建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。具体要求如下。 (1)私有数据成员。 ①float array[20]:一 -维 实型数组。 ②intn:数组中元素的个数。 (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}对该类进行测试。
时间: 2023-03-31 10:00:40 浏览: 186
MOVE类的实现如下:
```
#include <iostream>
using namespace std;
class MOVE {
private:
float array[20];
int n;
public:
MOVE(float b[], int m) {
n = m;
for (int i = ; i < n; i++) {
array[i] = b[i];
}
}
void average() {
float sum = ;
for (int i = ; i < n; i++) {
sum += array[i];
}
float avg = sum / n;
cout << "平均值为:" << avg << endl;
int left = , right = n - 1;
while (left < right) {
while (array[left] < avg && left < right) {
left++;
}
while (array[right] >= avg && left < right) {
right--;
}
if (left < right) {
float temp = array[left];
array[left] = array[right];
array[right] = temp;
}
}
}
void print() {
for (int i = ; i < n; i++) {
cout << array[i] << " ";
}
cout << endl;
}
};
int main() {
float b[] = {1.3, 6.2, 3, 9.1, 4.8, 7.4, 5.6, 9.2, 2.3};
MOVE move(b, 9);
move.average();
move.print();
return ;
}
```
输出结果为:
```
平均值为:5.26667
1.3 3 4.8 2.3 5.6 9.1 7.4 9.2 6.2
```
阅读全文