/*对一个5位数的任意整数,求出其降序数。例如,整数是82319,则其降序数是98321。算法提示:将整数的各位数分解到一维整型数组a中,再将a数组中的元素按降序排序,最后输出a数组元素值。试建立一个类DescendNUM,用于完成该功能。*/
#include<iostream>
using namespace std;
class DescendNUM
{
private:
int n;//存放5位数的整数
int a[5];//存放其元素的降序排列值
public:
DescendNUM(int x); //构造函数,用参数x初始化n
void decompose(); //将n的各位数分解到a数组
void dsort(); //将a数组排成降序
void show(); //显示其降序数
};
DescendNUM::DescendNUM(int x)
{
n=x;
}
void DescendNUM::decompose()
{
for(int i=0;i<5;i++)
{
a[i]=n%10;
n/=10;
}
}
void DescendNUM::dsort()
{
for(int i=1;i<5;i++)
{
for(int j=0;j<4;j++) //冒泡排序,i和j的范围要注意
{
int tmp;
if(a[j]<a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
}
void DescendNUM::show()
{
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
/*在主函数中输入一个5位数的任意整数,然后定义一个DescendNUM类对象num,用上述输入的数初始化num,然后完成对该类的测试*/
int main()
{
int n=35271;
DescendNUM num(n);
num.decompose();
num.dsort();
num.show();
return 0;
}