C程序设计。C语言。第22题求高手解释。一开始j都等于十了,就算经过一次循环也怎么可能还大于三呢

 我来答
wchyumo2011
推荐于2016-07-26 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2856万
展开全部

根据代码,只起等价于

for (j=10; j>3; j++){
    if (j%3!=0){
        --j;
    }
    --j;
    --j;
    printf ("%d ", j);
}

所以可得j=10时,j%3=1所以输出j=7

j++得到j=8,同理得到输出j=5

j++得到j=6,而j%3=0,所以输出j=4

j++得到j=5,得到输出2

j++得到j=3不大于3停止循环。

所以最后输出7 5 4 2

西瓜苹果胡桃
2015-09-01 · TA获得超过1006个赞
知道小有建树答主
回答量:1222
采纳率:0%
帮助的人:615万
展开全部
因为循环内部更改了 j 的值,在软件工程中是非常不推荐这种写程序的方法的。
可以按程序执行顺序一步一步自己算,或者调试,你就知道为什么 j 的值会变小了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式