scanf(''%d'',&x)l
if(x++>5) printf(''%d'',x);
else printf(''%d\n'',x--);
}
为什么结果是7和5 最后的5是怎么得来的?
输入6时经过x++后第一个printf后输出是7,而输入4时经过IF条件里的x++后得5 那经过第二个prinrf后的x-- 为什么结果不是4呢 而是5!
C语言中main() {int xl
答案:6 悬赏:50 手机版
解决时间 2021-02-21 17:28
- 提问者网友:不爱我么
- 2021-02-21 09:07
最佳答案
- 五星知识达人网友:玩家
- 2021-02-21 10:04
你好。是这样的。
输入6时经过x++后第一个printf后输出是7应该没什么疑问了。
输入4时。经过IF条件里的x++后得5。但是x++的返回值是4。
后增后减的返回值都是自身。operator++或operator--的后增形式实际是先在函数内定义一个临时变量。将自增自减前的值赋给临时变量。然后自增或自减。最后返回的是临时变量的值。
因此。执行else printf(''%d\n'',x--);时x值为5,其返回值就是5.所以输出5.
输入6时经过x++后第一个printf后输出是7应该没什么疑问了。
输入4时。经过IF条件里的x++后得5。但是x++的返回值是4。
后增后减的返回值都是自身。operator++或operator--的后增形式实际是先在函数内定义一个临时变量。将自增自减前的值赋给临时变量。然后自增或自减。最后返回的是临时变量的值。
因此。执行else printf(''%d\n'',x--);时x值为5,其返回值就是5.所以输出5.
全部回答
- 1楼网友:撞了怀
- 2021-02-21 14:55
执行了上面的if就不会执行下面的else,没执行if就执行else好理解了吧。
- 2楼网友:傲气稳了全场
- 2021-02-21 14:20
当你输入6时,经过判断语句if(x++>5)后,x=7,显然printf("%d",x);结果为7
当你输入4时,经过判断语句if(x++>5)后,x=5,显然printf("%d",x--);结果为5
其实就是只要程序经过if(x++>5)语句后,不管判断的结果成立与否,x都会自增1.
- 3楼网友:神的生死簿
- 2021-02-21 12:52
x++
x--
这种放后面的自增,自减,都是x 先不变,比较或者输出完之后(当前语句执行完了),再自增或者自减
- 4楼网友:一叶十三刺
- 2021-02-21 11:34
#include<stdio.h>
int main(void)
{
\*程序*\
return 0;
}
int 是函数的返回值类型,void是main函数的参数为void类型, 最后的返回值最好有return 0;
- 5楼网友:从此江山别
- 2021-02-21 10:21
因为x-- 的意思是运算完了再减,所以先输出再减1,你可以这样验证:
scanf(''%d'',&x)l
if(x++>5) printf(''%d'',x);
else printf(''%d\n'',x--);
printf("%d",x); // 此时x=4.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯