#define MIN(A,B) A<B?A:B 为什么printf("%d\n",MIN(3*4.5,6/2)); 输出的是0.谢谢!
展开全部
哦,刚刚回答错了,二楼的对 ,(即现在的一楼)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-04
展开全部
3*4.5<6/2?3*4,5:6/2 运算时候会转换成double型 用%d输出当然不对!
修改为printf("%.lf\n",MIN(3*4.5,6/2));
修改为printf("%.lf\n",MIN(3*4.5,6/2));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!
3*4.5<6/2?3*4,5:6/2
运算时候会转换成double型
用%d输出当然不对!
修改为printf("%.lf\n",MIN(3*4.5,6/2));
希望对你有所帮助,望采纳。
3*4.5<6/2?3*4,5:6/2
运算时候会转换成double型
用%d输出当然不对!
修改为printf("%.lf\n",MIN(3*4.5,6/2));
希望对你有所帮助,望采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
你会发现这就会有警告
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);
你会发现这就会有警告
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询