菜鸟求教一道极简单的C语言题?

2024-11-19 06:37:20
推荐回答(4个)
回答(1):

int max(float x,float y)
{float z;
z=x>y?x:y;
return(z);
}

这个函数的返回类型是int型,而你的返回值是float z,最后还是取得整型返回的截取结果的整数部分返回
输入的时候因为scanf("%f,%f",&a,&b);中间有个逗号,所有你要这样输入1.5,2.3得到的结果是2

回答(2):

#include
int main()
{float max(float x,float y);//int改为float
float a,b;
int c;
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("max is %d\n",c);
return 0;
}
float max(float x,float y)//int改为float
{float z;
z=x>y?x:y;
return(z);
}

//这样就不会错了
//因为你的函数返回值是整数,系统自己取整了

回答(3):

#include
int main()
{float max(float x,float y);
float a,b;
float c; //定义为浮点
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("max is %f\n",c);
return 0;
}
float max(float x,float y) //返回类型浮点
{float z;
z=x>y?x:y;
return(z);
}

回答(4):

你把c定义成int的了,int是整数,所以小数会被截断,只取整数位

你把int c 改为float c
printf("max is %d\n",c);改为
printf("max is %f\n",c);