永发信息网

C语言试题?????

答案:2  悬赏:70  手机版
解决时间 2021-07-19 22:20
  • 提问者网友:一抹荒凉废墟
  • 2021-07-18 21:48

#define EVEN(x) x%2==0?1:0

mani()

{if(EVEN(9+1)) printf("is even");

else printf("is odd");}

结果为什么是is odd ???

最佳答案
  • 五星知识达人网友:怙棘
  • 2021-07-18 22:15

EVEN(9+1)等价于:9+1%2==0?1:0


注意运算规则,我用括号表示下:(9+(1%2)==0)?1:0


也就是说上面的表达式的结果是判断:10==0?1:0


显然10!=0,所以返回的是0,而不是1;


所以 IF条件不成立,输出else的内容

全部回答
  • 1楼网友:第四晚心情
  • 2021-07-18 22:50

是奇数的意思

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯