主题:请教
#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位数整数按降序排列,可运行结果不正确,如果直接用冒泡法逆序排列就不会有问题,但此程序是课本上的一个例子,想弄清楚是哪里错了,望高手指教
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位数整数按降序排列,可运行结果不正确,如果直接用冒泡法逆序排列就不会有问题,但此程序是课本上的一个例子,想弄清楚是哪里错了,望高手指教