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之后的代码都不可能执行。