函数
#include <stdio.h>int main(void)
{float a,b,c;
int max(float a,float b);
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("the result is:%.2f\n",c);
return 0;
}
int max(float x,float y)
{
float z;
if(x>y)
z=x;
else
z=y;
return z;
}
请问为什么只能是int max(float a,float b),不能是int max(a,b)呢
函数声明中需要指定参数类型,因此必须将参数名和类型一起写出来。在函数定义中可以省略参数的类型,因为已经在函数声明中指定了。所以在这个例子中,int max(float a,float b) 是函数声明,而 int max(a,b) 是不完整的函数定义。如果想要省略参数类型,可以这样写函数定义:
int max(float x,float y)
{
float z;
if(x>y)
z=x;
else
z=y;
return z;
}
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 本帖最后由 jackz007 于 2024-1-2 13:46 编辑
代码格式一定要工整,尤其是缩进的层次一定要分明,只有这样才能方便查错和阅读。
#include <stdio.h>
int main(void)
{
float a , b , c ;
int max(float a,float b) ; // 这个是函数声明,主要强调的是输入参数及返回值的类型,你甚至可以写成 int max(float , float) ;
scanf("%f,%f",&a,&b) ; // 这样写,在运行中容易出问题,最好去掉 "%f,%f" 中间的 ",",写成 scanf("%f%f",&a,&b) ;
c = max(a , b) ; // 这个是函数调用,不写参数及返回值的类型,有携带实参
printf("the result is:%.2f\n",c) ;
return 0 ;
}
int max(float x , float y) ; // 返回值 z 是 float,所以,应该写成 float max(float a , float b)
{
float z ;
if(x > y) z = x ;
else z = y ;
return z ;
}
页:
[1]