条件运算符不能按理想的比较大小,是有什么地方忽略了吗,求指教。谢谢啦

粘人的小妖精 2017-12-07 08:00:34
#include<stdio.h>
max(float x,float y)
{
float z ;
z=x>y?x:y;
return (z);
}
int main()
{
float a ,b;
int c;
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("%d\n",c);
return 0;
}
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Allensb 2017-12-08
  • 打赏
  • 举报
回复
若返回值与函数类型不同 默认会做类型强制转换的。
自信男孩 2017-12-08
  • 打赏
  • 举报
回复
#include<stdio.h>

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

    scanf("%f,%f",&a,&b);
    c=max(a,b);
    printf("%f\n",c);
    return 0;
}
参考一下吧 float转int会去掉小数部分;
赵4老师 2017-12-08
  • 打赏
  • 举报
回复
http://edu.csdn.net/course/detail/2344 C语言指针与汇编内存地址-一.代码要素
粘人的小妖精 2017-12-08
  • 打赏
  • 举报
回复
谢谢你们的解答,这道题我不理解的原因时条件运算符当x>y为真时执行第二条语句x,为假时执行y。我再执行时会出现不管为真为假都执行第二条语句x。而不是你们所说的强制转换。
大米粥哥哥 2017-12-07
  • 打赏
  • 举报
回复
你的max函数都没类型的 你返回float 还用int 接收....

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧