c语言求两个数中的最大值,请问我错在哪里?

#include"stdio.h"
void main()
{
int max (int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
int max(int x,int y)
{
int z;
if(x>y) {z=x;};
else {z=y;};
return(z);
}
#include"stdio.h"
void main()

{
int max (int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
return z;
}

这是改完后的,还是不行啊,只能显示输入的两个数的前面一个,不管输入什么,结果都是max=前面的那个数,咋办啊??救命啊????
问题在这个语句scanf("%d,%d",&a,&b);
一般情况在两个%d之间不加“,”。即写成scanf("%d%d",&a,&b);
详细原因如下:
对scanf函数来讲"%d,%d"中间的那个“,”是分隔符,即用来分开你输入的两个数据的字符。如果不加“,”,直接写scanf("%d%d",&a,&b);那么系统就默认回车或空格作分隔符,这样符合大多数人的输入习惯,所以通常都这么写。
但若加上那个“,”就只能以悔销“,”做分隔符。比如你想输入3和5两个数据,就只能这样输入:3->,->5(即碧腊游输完第一个数据按“,”再输第二个)。否则出错。估计你在输入数据时很可能是用局拦回车或空格当作分隔符,所以出错。
if(x>y) {z=x;};
else {z=y;};
大销斗御括号外分号都亏岩是多余的,而且貌似是销蠢中文分号
哈哈
错在MAX函数中,多了些符号,改成这样
int max(int x,int y)
{
int z;
if(x>y)
z=x;
else
z=y;
return z;
}
if还有else后面只有一个语句,不是复合语句,没必要加大括号,当然加也没问题,但是你用了大括号后,在大括号后面就腊团不能再加分号了,细心点,呵呵,还有就是初学的时候尽量自己解锋磨决这些问题,不要遇轮基橘到不能理解的东西就找人帮忙,自己多想想先,我也初学,这是我的见解!
提前定义函数要在主函数外面 把int max(int x,int y);加到第二行
if(x>灶逗粗y) {z=x;};
else {z=y;};
这两句后面各多了一个中隐镇文分号。。。指唤