#include<stdio.h>
int main()
{
int a[4],i,j,t,m,x;
scanf("%d",&x);
m=0;
for(i=3;i>=0;i--)
{
a[i]=x%10;
x/=10;
}
for(j=0;j<=3;j++)
{
for(i=0;i<=3-j;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
t=1;
for(i=3;i>=0;i--)
{
m=a[i]*t+m;
t*=10;
}
printf("%d",m);
return 0;
}
题目是一个四位数,要把每位的数字比较大小然后从小到大排序,比如4321,要输出1234
第一段for是把四位数分开存入数组
第二段是冒泡排序
最后一段是把数组里的每位数加回m
lz写了个从大到小排序,是对的,但这个就是错的不知道为什么,各位大佬能不能帮帮忙啊![](https://tb2.bdstatic.com/tb/editor/images/face/i_f09.png?t=20140803)
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f09.png?t=20140803)
int main()
{
int a[4],i,j,t,m,x;
scanf("%d",&x);
m=0;
for(i=3;i>=0;i--)
{
a[i]=x%10;
x/=10;
}
for(j=0;j<=3;j++)
{
for(i=0;i<=3-j;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
t=1;
for(i=3;i>=0;i--)
{
m=a[i]*t+m;
t*=10;
}
printf("%d",m);
return 0;
}
题目是一个四位数,要把每位的数字比较大小然后从小到大排序,比如4321,要输出1234
第一段for是把四位数分开存入数组
第二段是冒泡排序
最后一段是把数组里的每位数加回m
lz写了个从大到小排序,是对的,但这个就是错的不知道为什么,各位大佬能不能帮帮忙啊
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f09.png?t=20140803)
![](https://tb2.bdstatic.com/tb/editor/images/face/i_f09.png?t=20140803)