刚学习,不太懂,请教下这是哪里错了

刚学,习题是输入a,b,c这3个值,输出其中最大者。总是出错。帮忙看下错在了哪里。
#include<studio.h>
int main()
{
int max(int x,int y,int z);
int a,b,c,f;
scanf("%d,%d,%d",&a,&b,&c);
f=max(a,b,c);
printf("max=%d\n",f);
return 0;
}
int max(int x,int y,int z)
{int p;
if (x>y && x>z) p=x;
if (y>x && y>z) p=y;
if (z>x && z>y) p=z;
return(p);
}

p是局部变量

max函数这样写不行啊

#include<studio.h>

int max(int x,int y)
{
  if(x>y)
    return x;
  return y;
}
int max(int x,int y,int z)
{
  return max(max(x,y),z);
}

int main()
{
  int a,b,c,f;
  scanf("%d%d%d",&a,&b,&c);
  f=max(a,b,c);
  printf("max=%d\n",f);
  return 0;
}

if (x>y&& x>z) p=x; return p;
if (y>x&&y>z) p=y; return p;
if (z>x&&z>y) p=x;return p;

互关嘛