请问这个程序错在哪里?

#include
int 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);
return 0;
}
int max(int x,int y);
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}
构建时出现一个错误
F:\Test\test1-3.c(12) : error C2449: found '{' at file scope (missing function header?)
F:\Test\test1-3.c(17) : error C2059: syntax error : '}'
执行 cl.exe 时出错.
请问是软件的原因吗?我用的是VC6.0

10个回答

int max(int x,int y);
{
....
}
这里多了一个分号。

第十二行多了一个分号

函数实现的时候不要分号。
而且
int max(int x,int y)
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}
写那么啰嗦干嘛
int max(int x,int y)
{
if (x > y) return x; else return y;
}
不就可以了。

在max函数的定义处多了一个分号

我改了一下,弄了两个版本,请提问者对照自己的程序看一下。
(1)#include

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

int max(int x,int y);
{
int z;
if(x>y)z=x;
else z=y;
return z;
}
(2)#include
int max(int x,int y);

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

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

X_Doy
冰渍小丑橘 #include“stdio.h”,头文件
5 年多之前 回复

#include
第一行改成这样试试

max函数多了个分号,还有如果要把max函数放到main后面,应在main前定义它,或者把整个max函数放到main前

谢谢各位 ,由于在大学时没学好,现在在自学C语言,但是不知道选什么教材好,各位前辈推荐下啊,小弟在此谢了。

lzp_lrp
WorldMobile 建议学习C#吧,目前用的比较多
5 年多之前 回复

int max(int x,int y);
如果函数跟main不是在同一个文件中则在main函数上面这样写进行声明
如果是在同一个文件中,则把max函数直接写在main函数的上方就好了,在main中直接使用

max函数的定义处多了个分号

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问