C语言用if语句排序 为什么输入有些数字能成功排序,输入有的数其值会减少?

http://img.mukewang.com/5819a9540001d09a04140296.jpg输入其他数可以完成排序

#include<stdio.h>
int main(){
int a,b,c,d,e;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a<b){e=b;b=a;a=e;
}if(a<c){e=c;c=a;a=e;
}if(a<d){e=d;d=a;a=e;
}if(b<c){e=c;c=b;b=c;
}if(b<d){e=d;d=b;b=e;
}if(c<d){e=d;d=c;c=e;
}printf("%d,%d,%d,%d",a,b,c,d);
 return 0;
}


a56366
浏览 1477回答 3
3回答

二部学习小组

你写错了 :e写成c了    if(b<c){e=c;c=b;b=e;}

慕娘6529770

你用的if但并没有配套使用elseif else 所以,代码每一层都会判断,上一个判断更换了值,下一个判断就换了!

TigerSleepy

用冒泡法排序一下,这个看起来好麻烦
打开App,查看更多内容
随时随地看视频慕课网APP