c语言使用函数将三个数值从小到大排序

#include<stdio.h>
void main( )
{
void f(int x,int y);
int a=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
void f(int x,int y)
{
int t;
if(x<y)
{ t=x; x=y; y=t; }
}

哪里错了,解答一下吧,点采纳

void f(int &x,int &y); 里面需要加上 &

#include<stdio.h>
void main( )
{
    void f(int &x,int &y);
    int a=4,b=3,c=5;
    f(a,b);
    f(a,c);
    f(b,c);
    printf("%d,%d,%d\n",a,b,c);
}
void f(int &x,int &y)
{
    int t;
    if(x>y)
    { 
        t=x; 
        x=y; 
        y=t; 
    }
}

你要理解形参和实参的概念,在形参中的换位不会影响到实参。

要实现你的要求,这里需要用到指针。

void f(int *x, int *y){
     int t;
     if (*x < *y){
         t=*x;
         *x=*y;
         *y=t;
     }
}

f(&a,&b);
f(&a,&c);
f(&b,&c);