/*对于一个有正数和负数的数组,将其中所有小于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
;}
类实现一维数组正负数交换
最新推荐文章于 2023-01-07 16:39:04 发布