c语言自定义函数输入三个数从大到小排列,排列顺序有误

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

输入55.2 62 22
应得到62 55.2 22
实际得到22 62 55.2

return(d,e); 只能返回一个值。供参考:


#include <stdio.h>
void  change(float *d, float *e)//修改
{
    float t;
    if (*d < *e)//修改
    {
        t = *d;
        *d = *e;
        *e = t;
    }
    //return(d, e);//修改
}
int main()
{
    float a, b, c;
    scanf("%f %f %f", &a, &b, &c);
    change(&a, &b);//修改
    change(&a, &c);//修改
    change(&b, &c);//修改
    printf("%g %g %g", a, b, c);//修改
    return 0;
}