C语言编译错误

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:14:35
求高手帮忙啊,小弟初学C,编了一个比较三个数大小的程序,结果编译错误,请大哥们指点指点.
cpp(5) : error C2065: 'max' : undeclared identifier
cpp(7) : warning C4508: 'main' : function should return a value; 'void' return type assumed
cpp(9) : error C2373: 'max' : redefinition; different type modifiers
程序如下:
#include<stdio.h>
main()
{int a,b,c,e;
scanf("%d,%d,%d",&a,&b,&c);
e=max(a,b,c);
printf("max=%d",e);
}
int max(int x,int y,int z)
{int w;
if(x>y)
{if(x>z)
w=x;
else w=z;
}
else
{if(y>z)
w=y;
else w=z;
}
return (w);
}

你这样写的时候,子函数必须在主函数前面声明一下。

cpp(5) 函数在使用前要先申明 如果是在main函数前边定义的就不用了

#include<stdio.h>
int max(int x,int y,int z);/*函数声明*/
main()
{int a,b,c,e;
scanf("%d%d%d",&a,&b,&c);/*这个地方最好改下,要不你输入的时候得这样:3,4,5 */
e=max(a,b,c);
printf("max=%d",e);
}
int max(int x,int y,int z)
{int w;
if(x>y)
{if(x>z)
w=x;
else w=z;
}
else
{if(y>z)
w=y;
else w=z;
}
return (w);
}

另外这样也可以的,函数体在main前边
#include<stdio.h>
int max(int x,int y,int z)
{int w;
if(x>y)
{if(x>z)
w=x;
else w=z;
}
else
{if(y>z)
w=y;
else w=z;
}
return (w);
}
main()
{int a,b,c,e;
scanf("%d%d%d",&a,&b,&c);
e=max(a,b,c);
printf("max=%d",e);
}

cpp(5) :函数在使用前要先申明 如果是在main函数前边定义的就不用了
cpp(7) : main 前加