#define MIN(A,B) A<B?A:B 为什么printf("%d\n",MIN(3*4.5,6/2)); 输出的是0.谢谢!

 我来答
shine1991
科技发烧友

2012-03-04 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
ls的同学啊,你是为了凑答案才这么说的吧

lz试一下修改为
printf("%lf\n",MIN(3*4.5,6/2));

这里宏展开后3*4.5<6/2?3*4.5:6/2表达式的值为double型的,所以你用%d输出当然不对了
不信的话,试一下
int a=MIN(3*4.5,6/2);
你会发现这就会有警告
帐号已注销
2012-03-04 · TA获得超过696个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:264万
展开全部
哦,刚刚回答错了,二楼的对 ,(即现在的一楼)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-04
展开全部
3*4.5<6/2?3*4,5:6/2 运算时候会转换成double型 用%d输出当然不对!
修改为printf("%.lf\n",MIN(3*4.5,6/2));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
印卓秦采绿
2020-10-23 · TA获得超过1160个赞
知道小有建树答主
回答量:1871
采纳率:100%
帮助的人:8.9万
展开全部
你好!
3*4.5<6/2?3*4,5:6/2
运算时候会转换成double型
用%d输出当然不对!
修改为printf("%.lf\n",MIN(3*4.5,6/2));
希望对你有所帮助,望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
念存仉雅霜
2019-04-05 · TA获得超过1051个赞
知道小有建树答主
回答量:1944
采纳率:96%
帮助的人:10.7万
展开全部
ls的同学啊,你是为了凑答案才这么说的吧
lz试一下修改为
printf("%lf\n",MIN(3*4.5,6/2));
这里宏展开后3*4.5<6/2?3*4.5:6/2表达式的值为double型的,所以你用%d输出当然不对了
不信的话,试一下
int
a=MIN(3*4.5,6/2);
你会发现这就会有警告
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式