香水是哪个国家的:关于C的一个初级问题,请帮帮忙!!谢谢

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/08 01:18:52
main()
{
float a,b;
int c;
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("max is %d\n",c);
}
max(float a,float b)
{float c;
c=a>b?a:b;
return(c);}
为什么不能成功实现功能呢??
而且max返回值总是2。。
补充:我是想要返回那个较大值的整数部分!!
而不是那个原值!

首先,你要么全用 float,要么全用 int。
其次,你的 max 函数没有写明返回类型。
最后,如果 max 写在 main 后面的话,前面要声明。

float max(float a, float b);

main()
{
    float a, b, c;
    scanf("%f,%f", &a, &b);
    c = max(a, b);
    printf("max is %f\n", c);
}

float max(float a, float b)
{
    float c;
    c = a > b ? a : b;
    return(c);
}

#include<stdio.h>
main()
{
float max(float , float);
float a,b,c;
scanf("%f %f",&a,&b);
c=max(a,b);
printf("max is %f\n",c);
}
float max(float a,float b)
{
float c;
c=a>b?a:b;
return(c);
}

MAX的返回值为浮点型,
而A为整形,所以不能把MAX返回值直接附给A,
程序在执行时会自动把MAX转换成整型,
所以返回值一直是2了。
把A换成浮点型的就可以了。