黑马程序员技术交流社区
标题:
小编程题
[打印本页]
作者:
王海江1
时间:
2014-6-11 21:50
标题:
小编程题
本帖最后由 王海江1 于 2014-6-13 22:09 编辑
int main()
{
int a=1;
if(a++>1)
printf("%d\n",a);
else
printf("%d\n",a--);
return 0;
}
请问,结果打印的是a--表达式的值,而不是a的值对吧??怎么分析呢这个题?
作者:
康佳兴
时间:
2014-6-11 22:53
你代码本身就存在问题,if后面的{}没打全,如果补全之后输出的结果是2,我是这么看的,开始判断a>1不成立,然后走else,但是这时候a 会加一,然后进入循环,进入循环以后输出a,然后进行减一操作,你可以在后面加一个
printf("%d",a);这样好理解一点,希望帮到你了
作者:
王海江1
时间:
2014-6-11 22:55
康佳兴 发表于 2014-6-11 22:53
你代码本身就存在问题,if后面的{}没打全,如果补全之后输出的结果是2,我是这么看的,开始判断a>1不成立, ...
打错了,不好意思,改过来了
作者:
但愿''专注..
时间:
2014-6-12 09:43
你加个括号就行了
作者:
chain
时间:
2014-6-12 21:50
请问这里哪来的循环呢?有for?while? 还是什么? 首先定义一个int类型的变量a然后if的条件是a++ >1?既然是a++先判断条件是否成立,然后自增一次,很明显条件不成立,执行else 后面的代码 ,此时a的值自增之后为2,所以打印结果为2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2