c++题目一道求大神解答1.对于一个有正数和负数的数组,将其中所有小于0的元素放到所有大于0的元素的前面。使用的算法是:

c++题目一道求大神解答
1.对于一个有正数和负数的数组,将其中所有小于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],其初值是{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
香禅 1年前 已收到1个回答 举报

yahuu 幼苗

共回答了17个问题采纳率:94.1% 举报

//类的定义,其实已经够了,题目要求就这么多
class ARR
{
private:
int n;
int a[100];
public:
ARR(int * x, int size)
{
n=size;
for(int i=0;i

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.025 s. - webmaster@yulucn.com