c语言中条件运算符:问题

c语言中条件运算符:a%2==0?printf("偶数\n"):printf("奇数");正确。为什么:a%2?printf("偶数\n"):printf("奇数");这... c语言中条件运算符: a % 2 == 0?printf("偶数\n"):printf("奇数"); 正确。
为什么 :
a % 2?printf("偶数\n"):printf("奇数");
这个是错的?去掉==0,不也一样能够表示a%2 只有两种:要么是0 要么是1, 不也一样能够判断是真是假,但为什么不对,非要加上==0.
展开
 我来答
zyz郑远征
2015-02-10 · TA获得超过1116个赞
知道小有建树答主
回答量:462
采纳率:100%
帮助的人:473万
展开全部
a % 2?printf("偶数\n"):printf("奇数\n");

当a为偶数时,那么a%2这个表达式的值为0,0表示为假,就会执行printf("奇数\n")语句。
当a为奇数时,那么a%2这个表达式的值为1,非零为真,所以1表示为真,就会执行printf("偶数\n")语句。
所以结果与现实相反了。
风雷九州
推荐于2016-06-03 · TA获得超过3025个赞
知道大有可为答主
回答量:1127
采纳率:100%
帮助的人:433万
展开全部
条件运算符的意义如下

判断条件 ? 为真执行的语句 : 为假执行的语句

其实条件运算符就是一个简化的if判断,上面的就等效于
if(判断条件)
为真执行的语句
else
为假执行的语句

对于楼主的疑问,a % 2 == 0的问题,如果不加==0,那么判断条件正好相反。

1、a % 2 == 0,如果a是偶数,那么a%2结果就是0,a % 2 == 0判断为真。
如果a是奇数,那么a%2结果就是1,a % 2 == 0判断为假。

2、a % 2,如果a是偶数,那么a%2结果就是0,a % 2的判断为假(C语言使用0表示假)。
如果a是奇数,那么a%2结果就是1,a % 2 的判断为真(C语言使用非0表示真)。

结果正好相反,所以一定要加上==了
追问
恩,的确是反了。我懂了。谢谢。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
纵横家_
2015-02-10 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:123万
展开全部
a % 2 == 0 因为如果a%2不等于0说明是假,如果等于0就是真。有bool结果的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15828655413
2015-02-10 · TA获得超过727个赞
知道小有建树答主
回答量:118
采纳率:100%
帮助的人:52.8万
展开全部
==是判断真假,去掉了后就没有逻辑判断能力,只代表0和1,理论跟实际是有区别的,多写几个程序就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式