Problem B: 类和对象的特性02

Problem B: 类和对象的特性02

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 269  Solved: 114
[Submit] [Status] [Web Board] [Creator:]

Description

对于一个有正数和负数的长度为10的数组,将其中所有小于0的元素放到所有大于0的元素的前面。使用的算罚是:从左右两个方向扫描数组,从左向右找到大于等于0的元素,从右向左找到小于0的元素,将两者交换。依此类推,直到扫描完为止。试建立-一个类ARR,完成上述工作。具体要求如下:

(1)私有数据成员。

●int n: 数组实际元素个数。

●int a[100]:初始时存放原始数组,最终存放交换后的数组。

(2)公有成员函数。

●ARR(int x[],int size): 构造函数,用参数size初始化n,用x数组初始化a数组。

●void change( ):使用以上算法,完成调换数组元素的工作。

void show():输出a数组的值。

(3)在主函数中完成对该类的测试。定义一个整型数组int b[10],其初值由键盘输入, 定义一个ARR类的对象v,用b数组及其元素个数初始化该对象,

输出原始数组的值,然后交换数组元素的值,最后输出交换后的结果。




Input

任意10个数据

Output

第一行为原始数组
第二行为交换后的数组
每个字段长度设置为4

Sample Input

1 -3 -1 3 2 4 -4 5 -5 -2

Sample Output

   1  -3  -1   3   2   4  -4   5  -5  -2
  -2  -3  -1  -5  -4   4   2   5   3   1

[Submit][Status]