建立一个类MOVE,对数组中元素进行循环换位,即每个元素后移三位,最后三个元素移到最前面。 具体要求如下: (1)私有数据成员 int array[20]:一维整型数组。 int n:数组中元素的个数。 (2)公有成员函数 MOVE(int b[],int m):构造函数,初始化成员数据。 void change():进行循环换位。 void print():输出一维数组。 (3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。
时间: 2024-02-15 20:03:33 浏览: 109
好的,这是一个关于类的编程问题,我可以为您解答。
以下是MOVE类的定义和实现:
```cpp
#include <iostream>
using namespace std;
class MOVE {
private:
int array[20];
int n;
public:
MOVE(int b[], int m) {
n = m;
for (int i = 0; i < n; i++) {
array[i] = b[i];
}
}
void change() {
int temp[3];
for (int i = n-3; i < n; i++) {
temp[i-(n-3)] = array[i];
}
for (int i = n-1; i >= 3; i--) {
array[i] = array[i-3];
}
for (int i = 0; i < 3; i++) {
array[i] = temp[i];
}
}
void print() {
for (int i = 0; i < n; i++) {
cout << array[i] << " ";
}
cout << endl;
}
};
```
在主程序中,可以这样调用MOVE类:
```cpp
int main() {
int b[] = {21,65,43,87,12,84,44,97,32,55};
MOVE move(b, 10);
move.change();
move.print();
return 0;
}
```
输出结果为:
```
44 97 32 21 65 43 87 12 84 55
```
可以看到,每个元素都向后移动了3位,并且最后三个元素移到了最前面。
阅读全文