c语言跪求指导

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

编译结果
D:\Program Files (x86)\DEV-CPP\Examples\未命名1.c In function `main':

3 D:\Program Files (x86)\DEV-CPP\Examples\未命名1.c [Warning] return type of 'main' is not `int'

At top level:

11 D:\Program Files (x86)\DEV-CPP\Examples\未命名1.c syntax error before '{' token

1、把 int max(int x,int y, int z) 后面的 语句结束符 ;去掉
2、把 void main改成 int main ,加上return 0;
3、把 scanf("%d,%d,%d)中的逗号去掉。修改后的代码如下:
#include<stdio.h>
int max(int x,int y,int z); //拿到外面声明
int main()
{
int a,b,c,h;
scanf("%d%d%d",&a,&b,&c); //把逗号去掉,否则输不进三个值
h=max(a,b,c);
printf("max=%d\n",h);
return 0;
}
int max(int x,int y,int z) //这里原来有语句结束符 不可以有
{
int e,f;
if(x>y)e=x;
else e=y;
if(e>z)f=e;
else f=z;
return(f);
}

没事欢迎来0x30百度贴吧 耍耍,共同分享交流C/C++
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-03
你的函数位置不对,要不在main函数前声明函数,你现在放在main中声明 肯定是找不到的,
第二错误 你的函数max 后面有个分号,于是函数定义找不到,修改了下
#include<stdio.h>
int max(int x,int y,int z);
void main(){

int a,b,c,h;
scanf("%d,%d,%d",&a,&b,&c);
h=max(a,b,c);
printf("max=%d\n",h);
}
int max(int x,int y,int z)
{
int e,f;
if(x>y)e=x;
else e=y;
if(e>z)f=e;
else f=z;
return(f);
}
第2个回答  2013-03-03
一处警告,main的返回值要用int

把 void main() 改成
int main()
{
...
return 0;
}

一处错误,语法错误
把int max(int x,int y,int z);
改成int max(int x,int y,int z)
因为后面加了一个;号 是错误的。
也就是要写成如下形式
int max(int x,int y,int z)
{
...
}本回答被提问者采纳