#include<iostream.h>

class NUM
{
    int n;
    int a[5];
public:
    NUM(int x = 0)
    {
        for(int i=0; i<5; i++)
            a[i] = 0;
        n = x;
    }
    void descrease();
    void show()
    {
        cout<<"n="<<n<<endl;
        for(int i=0; i<5; i++)
            cout<<a[i];
        cout<<endl;
    }
};
void NUM::descrease()
{
    int i = 0,j;
    int x = n;
    while(x)
    {
        a[i] = x % 10;
        x = x/10;
        i++;
    }
    for(i=0; i<5; i++)
        for(j=0; j<4; j++)
            if(a[j] > a[j+1])
    {
        int t = a[j];
        a[j] = a[j+1];
        a[j+1] = t;
    }    
            for(i=0; i<3; i++) //对a[i]中的数字逆序排列
                j = a[i];
                a[i] = a[4-i];
                a[4-i] ;
void main()
{
    int n;
    cout<<"input n:";
    cin>>n;
    NUM num(n);
    num.descrease();
    num.show();
}
这个程序是实现一个5位数整数按降序排列,可运行结果不正确,如果直接用冒泡法逆序排列就不会有问题,但此程序是课本上的一个例子,想弄清楚是哪里错了,望高手指教