类实现一维数组正负数交换

/*对于一个有正数和负数的数组,将其中所有小于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] , 其 初 值 是 {1,-3,-1,3,2,4,-4,5,-5,-2},定义一个ARR类的对象v,用b数组及其元素个数初始化该对象,先输出原始数组的值,然后交换数组元素的值,最后输出交换后的结果。 程序运行结果应为: 1 -3 -1 3 2 4 -4 5 -5 -2 -2 -3 -1 -5 -4 4 2 5 3 1 */ #include<iostream> using namespace std ; class arr{ private : int n; int a[ 10 ]; public : arr( int x[], int size); void change(); void show();};arr::arr( int x[], int size){ n = size; for ( int i = 0 ; i < n; i++) { a[i] = x[i]; }} void arr::change(){ int i = 0 , j = n - 1 ; while (i != j + 1 ) { while (a[i] < 0 ) i++; while (a[j] > 0 ) j--; int temp; temp = a[i]; a[i] = a[j]; a[j] = temp; }} void arr::show(){ for ( int i = 0 ; i < n; i++) { cout << a[i] << '\t' ; } cout << endl;} int main(){ int x[] = { 1 ,- 3 ,- 1 , 3 , 2 , 4 ,- 4 , 5 ,- 5 ,- 2 }; arr arr1(x, 10 ); arr1.show(); arr1.change(); arr1.show(); system( "pause" ); return 0 ;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值