标题:a=9,if(a++>9)输出a,为什么输出的是11
只看楼主
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
结帖率:100%
 问题点数:0 回复次数:9 
a=9,if(a++>9)输出a,为什么输出的是11
有以下程序段运行时从键盘输入9<回车>, 则输出结果是(     )。

 int a;
 scanf("%d",&a);
 if(a++>9) printf("%d\n",a);
 else printf("%d\n",a+1);
搜索更多相关主题的帖子: int 输出 printf if 结果 
2019-11-25 19:12
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
11.
2019-11-25 20:11
c鳌白
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:24
专家分:101
注 册:2019-11-10
得分:0 
a=9,if(a++>9)输出a,为什么输出的是11
if(9+1>9)
成立等于9;
不成立10+1;
2019-11-25 20:27
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
你吃了9个包子
判断 如果你吃了超过9个
(判断完以后你又把拿在手里的1个吃了)
那么 输出吃包子数
否则 输出吃包子数+1

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-11-25 20:42
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
如果没有理解后置++的精髓,
那一般是因为吃得太饱了。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-11-25 20:45
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:0 
回复 5楼 forever74
吃饱了就吃不下了
2019-11-25 22:27
三尺冰
Rank: 2
等 级:论坛游民
帖 子:17
专家分:50
注 册:2019-10-22
得分:0 
if(a++>9)会执行里面的表达式然后判断,++后缀用法,
出了if就变成10了,printf里又加1,就是11

天道酬勤,自强不息
2019-11-25 22:40
龙侃飞
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-3-1
得分:0 
首先你要知道a++的用法是“先用后加”,即先用a和9比较,不论结果如何都加1,所以,在if里面判断后,无论结果如何aa都等于10,后面的就不用解释你也懂了
2019-12-05 22:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
a++ 这个表达式的评估值是 9,副作用是 a=10
2019-12-06 09:20
昊皇
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-12-2
得分:0 
回复 楼主 黑暗骑士5D
a++>9;是先判断a>9,在++。所以是else,然后输出a+1,即10+1=11.
2019-12-06 23:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498076-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022474 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved