22. 试定义一个类 NUM,实现将一维数组中各整数元素去年去掉相同数字后再对数组从小到大排序。将一个整数去掉相同数字是指:如果一个整数中有相同的数字,则保留从左数起,第一次看到的那个数
字,而将其它的数字去掉。例如:数字 12324151 中有三个 1,两个 2,则去掉相同的数字后变为 12345。
具体要求如下:
用int a[5]={1213,65666,212313,12434,34435};这一数组初始化NUM n1213 65666 212313 12434 34435 65 123 213 345 1243#include
using namespace std;
class NUM{
int *a,n;
public:
NUM(int t[],int len){
n=len;
a=new int[n];
for(int i=0;i<n;i++){
a[i]=t[i];
}
}
void sort(int t[]){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(a[j]>a[j+1]){
int a=t[j];
t[j]=t[j+1];
t[j+1]=a;
}
}
}
}
int convert(int n){
int t[100],count=0;
while(n){
t[count++]=n%10;
n/=10;
}
int sum=0;
for(int i=count-1;i>=0;i--){
int j;
for(j=count-1;j>i;j--){
if(t[i]==t[j])break;
}
if(i==j){
sum=sum*10+t[i];
}
}
return sum;
}
void fun(){
for(int i=0;i<5;i++){
a[i]=convert(a[i]);
}
sort(a);
}
void print(){
for(int i=0;i<n;i++)cout<<a[i]<<' ';
cout<<endl;
}
};
int main(){
int a[5]={1213,65666,212313,12434,34435};
NUM num(a,5);
num.print();
num.fun();
num.print();
return 0;
}