关于网友提出的“ C语言萌新求助(初学者)”问题疑问,本网通过在网上对“ C语言萌新求助(初学者)”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: C语言萌新求助(初学者)
描述:for ( int i=10; i> 1; i /=2 ) {
printf("%d ", i++);
}
这个程序为什么输出结果是10 5 3 2呢?
不应该是10 5 2吗?5/2之后等于2.5 因为是int所以直接变成2 迷茫了
解决方案1:第一次循环 i=10 i++ 后 11
第二次循环 i=5 i++ 后 6
第三次循环 i=3 i++ 后 4
第四次循环 i=2 i++ 后 3
第五次循环 i=1 终止
5.0/2才等于2.5
解决方案2:逻辑是这样的:
i=10;
printf("%d",i++) //打印完10以后i=11,因为执行了i++
然后i=i/2 //此时i=5
printf("%d",i++)//打印完5以后i=6,理由同上
i=i/2 //此时i=3
解决方案3:执行顺序如下,i=10 ;i>1;print;i++;这个时候是i=11;i/=2;print 5,i=6;i/=2=3下面的一样
,这样你搞清楚了没,输出结果是没有错误的。是因为你有一个i++
以上介绍了“ C语言萌新求助(初学者)”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/wd/4185095.html