C语言的问题?
不能理解答案如果i++换成i的话答案是10521吗想问一下为啥有10输出,不是应该判断再输出吗...
不能理解答案
如果i++换成i的话答案是10 5 2 1 吗 想问一下为啥有10输出,不是应该判断再输出吗 展开
如果i++换成i的话答案是10 5 2 1 吗 想问一下为啥有10输出,不是应该判断再输出吗 展开
展开全部
输出情况分析如下:
---
执行步骤如下:
1、i=10,满足i>1条件,执行printf输出10后,i自增为11,然后执行i/=2,i=5
2、i=5,满足i>1条件,执行printf输出5后,i自增为6,然后执行i/=2,i=3
3、i=3,满足i>1条件,执行printf输出3后,i自增为4,然后执行i/=2,i=2
4、i=2,满足i>1条件,执行printf输出2后,i自增为3,然后执行i/=2,i=1
5、i=1,不满足i>1条件,退出循环
所以,输出结果为:10 5 3 2
---
如果i++换成i,执行结果如下:
1、i=10,满足i>1条件,执行printf输出10,然后执行i/=2,i=5
2、i=5,满足i>1条件,执行printf输出5,然后执行i/=2,i=2
3、i=2,满足i>1条件,执行printf输出2,然后执行i/=2,i=1
4、i=1,不满足i>1条件,退出循环
修改后,输出结果为:10 5 2
---
执行步骤如下:
1、i=10,满足i>1条件,执行printf输出10后,i自增为11,然后执行i/=2,i=5
2、i=5,满足i>1条件,执行printf输出5后,i自增为6,然后执行i/=2,i=3
3、i=3,满足i>1条件,执行printf输出3后,i自增为4,然后执行i/=2,i=2
4、i=2,满足i>1条件,执行printf输出2后,i自增为3,然后执行i/=2,i=1
5、i=1,不满足i>1条件,退出循环
所以,输出结果为:10 5 3 2
---
如果i++换成i,执行结果如下:
1、i=10,满足i>1条件,执行printf输出10,然后执行i/=2,i=5
2、i=5,满足i>1条件,执行printf输出5,然后执行i/=2,i=2
3、i=2,满足i>1条件,执行printf输出2,然后执行i/=2,i=1
4、i=1,不满足i>1条件,退出循环
修改后,输出结果为:10 5 2
2020-03-08
展开全部
i++,是先赋值后自增,比如当i=10, %d输出的是10,然后10+1=11,11/2=5,这个数再进行下一次循环. 换成i就是10 5 2 1了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询