将a,b,c,三个数从小到大排列

#include<stdio.h>
int main()
{
int a,b,c,temp;
printf("please input 3 numbers: ");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("%d,%d,%d",a,b,c);
为啥不用elseelse

因为都需要比较啊。每次if完成后,其实是获得了两个数当中的最小数(if函数体进行了两个数的交换)
两个数中的最小数,是需要和剩余的数继续比较的
这代码相当于把冒泡排序循环判断改成顺序判断了。

else是与其他都不满足的意思,后面不加条件,但是if 下面可以是else if() ,只有条件有两个以上就可以使用,最后一个可以是else
if与else if的区别:就是if可以只要满足条件就执行,但是else if会发现即使第一个执行了,第二个满足条件依然不会执行。就像是一个互斥的现象。
你的题目显然不能使用else if,另外你的程序是通过比较,使用一个中间变量完成数据交换,所以需要有条件,就不能使用else了
将这三个数顺序排序只能使用if进行数据交换完成从小到大或者从大到小排序

你如果使用else的话,在第一个a与b比较条件满足后,就结束了,没有进行b与c、a与c比较!望采纳!