t=MAX(a+b,c+d)*10
#include"stdio.h"#defineMAX(x,y)(x)>(y)?(x):(y)voidmain(){inta=5,b=2,c=3,d=3,t;t=MAX(...
#include "stdio.h"
#define MAX(x,y) (x)>(y)?(x):(y)
void main()
{
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
为什么等于7?不是70吗? 展开
#define MAX(x,y) (x)>(y)?(x):(y)
void main()
{
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
为什么等于7?不是70吗? 展开
展开全部
宏定义并不像函数那样先计算max再乘以10
max只是单纯的语言替换
因为没有在整个冒号语句外加括号
*10也成为了冒号语句的一部分
因此原文就变成了前者大输出前者 后者大输出10倍后者
所以有
是7不是70
max只是单纯的语言替换
因为没有在整个冒号语句外加括号
*10也成为了冒号语句的一部分
因此原文就变成了前者大输出前者 后者大输出10倍后者
所以有
是7不是70
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
t=MAX(a+b,c+d)*10; 展开为 t=(a+b)>(c+d)?(a+b):(c+d)*10;所以为7
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先求MAX,再去乘以10。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询