C语言三位数输出最大值

#include<stdio.h>

int main()

{
int max(int a,int b,int c);
int a,b,c,x;

scanf("%d %d %d",&a,&b,&c);

x=max(a,b,c);

printf("max=%d\n",x);

return 0;

}
代码如上,用的是devc++,编译显示错误。

#include <stdio.h>
int max(int a, int b)
{
    return a > b ? a : b;
}
int main(void)
{
    int a = 0, b = 0, c = 0;
    scanf("%d%d%d", &a, &b, &c);
    printf("max = %d\n", max(max(a, b), c));
    return 0;
}

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