震撼同义词:使一个数的个十百千按照由小大排列

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/24 09:14:33
main()
{int a,b,c,d,x,y;
scanf("%d",&x);
a=x/1000;
b=x%1000/100;
c=x%100/10;
d=x%10;
if(a>b)
{y=a;
a=b;
b=y;
}
else if(a>c)
{y=a;
a=c;
c=y;
}
else if(a>d)
{
y=a;
a=d;
d=y;
}
else if(b>c)
{
y=b;
b=c;
c=y;
}
else if(b>d)
{
y=b;
b=d;
d=y;
}
else if(c>d)
{y=c;
c=d;
d=y;
}
printf("%d%d%d%d",a,b,c,d);
getch();
}
错在哪了?怎么运行的结果总是不对?

把所有的else去掉。
原来的代码当a>b的时候之后的代码都未执行。后面的代码也是,当if内条件满足,else之后的代码都不可能执行。

这么多if看的头都晕了 ,建议把abcd存入数组,用冒泡排序法。