C语言高手请进,一道程序题不理解,输入3个数,然后降序排列,

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:05:56
我看不明白它是怎么实现降序排列的,高手指点!
#include<stdio.h>
int main(void)
{
float a,b,c,x;
printf("\nplease enter 3 reals:\n");
scanf("%f%f%f",&a,&b,&c);
if(a>b)
{
x=a;
a=b;
b=x;
}
if(b>c)
printf("%f\t%f\t%f\n",a,b,c);
else if(c>a)
printf("%f\t\t%f\t\t%f\n",c,a,b);
else
printf("%f\t\t%f\t\t%f\n",a,c,b);
return 0;
}

if(a>b)
{
x=a;
a=b;
b=x;
}
这里a总是大于b

if(b>c)
printf("%f\t%f\t%f\n",a,b,c);
如果b>c,那顺序就是a,b,c
否则就是c>b.这有两种情况:a>c, a<c
如果a>c,顺序就是a,c,b
如果a<c,顺序就是c,a,b

测试了一下,这个程序输出的结果不对啊!改成这样才对
#include<stdio.h>
int main(void)
{
float a,b,c,x;
printf("\nplease enter 3 reals:\n");
scanf("%f%f%f",&a,&b,&c);
if(a>b) //就这一行错了
{
x=a;
a=b;
b=x;
}
if(b>c)
printf("%f\t%f\t%f\n",a,b,c);
else if(c>a)
printf("%f\t\t%f\t\t%f\n",c,a,b);
else
printf("%f\t\t%f\t\t%f\n",a,c,b);
return 0;
}

二楼的,你的也有点小错误吧。这个程序有错误,所以看不懂吧。
该成这样就行了吧:
#include<stdio.h>
int main(void)
{
float a,b,c,x;
printf("\nplease enter