c++中试定义一个类ARRAY,实现对一维整型数组的排序。排序的规则如下:将一维数组中各元素按其各位的数字之和从小到大排序。具体要求: 私有数据成员: int a[10];待排序的数组。 int n;数组中元素的个数。 公有成员函数 ARRAY(int t[],int m);构造函数,利用参数t初始化成员a,参数m为数组t中元素的个数,用参数m初始化成员n。 int sum(int x);求整数x的各位数字之和,并返回该值,此函数供成员函数fun()调用。 void fun();按要求对数组a的元素排序。 void print();输出数组a的所有元素。
时间: 2023-12-10 13:41:35 浏览: 92
以下是实现了上述要求的ARRAY类的定义和实现:
```cpp
#include <iostream>
using namespace std;
class ARRAY {
private:
int a[10];
int n;
int sum(int x) {
int s = 0;
while (x) {
s += x % 10;
x /= 10;
}
return s;
}
public:
ARRAY(int t[], int m) {
n = m;
for (int i = 0; i < n; i++) {
a[i] = t[i];
}
}
void fun() {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; 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 < n; i++) {
cout << a[i] << " ";
}
cout << endl;
}
};
```
在主函数中,可以通过以下方式使用上述定义的ARRAY类:
```cpp
int main() {
int t[] = {123, 456, 789, 321, 654};
ARRAY arr(t, 5);
cout << "Original array: ";
arr.print();
arr.fun();
cout << "Sorted array: ";
arr.print();
return 0;
}
```
输出:
```
Original array: 123 456 789 321 654
Sorted array: 123 321 456 789 654
```
阅读全文