【问题描述】有16个数:{1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10},已按由小到大的顺序排好,存于数组a中,试建立一个类ARR,完成将其中相同的数删得只剩一个。经删除后,a数组中的内容 为{1,2,3,4,5,6,7,8,9,10},具体要求如下:
(1) 私有数据成员
int n: 数组实际元素个数。
int a[100]:存放原始数组及结果数组。
(2) 公有成员函数
ARR(int x[ ], int size):构造函数,用size初始化n,用x初始化a数组。
void delsame():完成数组a中相同元素的删除工作。
void show(): 将结果数组以每行10个数的形式输出到屏幕上。
(3) 在主程序中定义数组int b[16],初值如上。定义一个类ARR的对象v,用b及数组元素的个数初始化该对象,然后按上述要求完成对该类的测试。
【输入形式】无
【输出形式】输出数组对象删除重复元素前和删除重复元素后的数据。
【样例输入】无
【样例输出】
删除前: 1 2 2 3 4 4 5 6 6 7
8 8 8 9 10 10
删除后: 1 2 3 4 5 6 7 8 9 10
#includeusing namespace std; #include class ARR { private: int n; int a[100]; public: ARR(int x[], int size) { n=size; for(int i=0;i a[i]=x[i]; } } void delsame() { for(int i=0;i for(int j=i+1;j if(a[i]==a[j]) { for(int k=j;k a[k]=a[k+1];//所有数字前移一位,就删除了当前重复元素 } --n;//删除元素后数组大小减1 --j;//因为有j++,要减一下,否则下次比较的是移动之后的下一位 } } } } void show() { for(int i=0;i cout< int b[]={1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10}; //先定义数组, 用此数组初始化类的对象中的数组成员 int n=sizeof(b)/sizeof(int); //计算b数组的元素长度 ARR v(b,n); //定义类的对象并用数组b和数据n初始化对象的成员 cout<<"删除前:"; v.show(); //输出对象的数组成员中的数据(还未做删除操作, 输出的是初始化后的数据) cout< 2、定义一个类ARRAY实现对一维整型数组的排序 【问题描述】试定义一个类ARRAY,实现对一维整型数组的排序。排序的规则如下:将一维数组中各元素按其各位的数字之和从小到大排序。具体要求如下:
(1)私有数据成员: int a[100]; 待排序的数组; int n; 数组中元素的个数; (2)公有成员函数 ARRAY(int t[], int m); 构造函数,利用参数t初始化成员a,参数m为数组t中元素的个数,用参数m初始化成员n; int sum(int x); 求整数x的各位数字之和,并返回该值,此函数供成员函数fun()调用; void fun(); 按要求对数组a的元素排序; void print(); 输出数组a的所有元素。 (3)在主函数中对该类进行测试。【输入形式】无
【输出形式】排序前后的数组对象中的数据。
【样例输入】无
【样例输出】排序前:297 735 624 158 312 900
排序后:312 900 624 158 735 297
#include3、建立一个数组类ARR求最大值及其下标using namespace std; #include class ARRAY { private: int n; int a[100]; public: ARRAY(int t[], int m) { n=m; for(int i=0;i a[i]=t[i]; } } int sum(int x) { int sum=0; while(x) { //计算整数的各位数字之和 sum+=x%10; x/=10; } return sum; } void fun() { //选择排序 for(int i=0;i for(int j=i+1;j if(sum(a[i])>sum(a[j])) { int temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } void print() { for(int i=0;i cout< int a[]={297,735,624,158,312,900}; ARRAY arr(a,sizeof(a)/sizeof(int)); cout<<"排序前:"; arr.print(); arr.fun(); cout<<"排序后:"; arr.print (); return 0; } 【问题描述】建立一个数组类ARR,求一个整型数组所有元素中的最大值及该最大值在数组中的序号(从1开始),具体要求如下:
(1)私有数据成员: int n : 数组实际元素个数 int a[100] : 存放数组元素 int max, maxindex : 存放整型数组元素中的最大值及最大值的序号 (2)公有成员函数 ARR(int x[ ], int size): 构造函数,用参数size初始化n,用x数组初始化a数组。 void FindMax( ): 求整型数组元素中的最大值及最大值的序号。 void Show( ): 将数组元素以每行5个数的形式输出到屏幕上,同时输出数组中元素的最大值及最大值的序号。 (3)在主函数中完成对该类的测试,定义一个整型数组b[ ]={3,4,6,8,10,34,2}, 定义一个ARR类的对象arr,用b数组及其元素个数初始化该对象,求其最大值及最大值的序号并输出程序的运行结果。【输入形式】无
【输出形式】数组对象中的元素最大值及最大值的序号。
【样例输入】无
【样例输出】3 4 6 8 10
34 2
max=34 maxindex=6
#includeusing namespace std; #include class ARR { private: int n; int a[100]; int max,maxindex; public: ARR(int x[ ], int size) { n=size; for(int i=0;i a[i]=x[i]; } } void FindMax() { max=a[0]; maxindex=0; for(int i=1;i if(a[i]>max) { max=a[i]; maxindex=i+1; } } } void Show() { for(int i=0;i cout< cout<



