为了账号安全,请及时绑定邮箱和手机立即绑定

这行代码输出为什么是3,-1,大佬求解

#include <stdio.h>
void main()
{int i,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(--b>=0)
k++;
}
printf("%d,%d",k,b);
}

正在回答

1 回答

我估计你是在想为什么b最后是=-1 而不是等于0。 

因为最后对b操作的语句是while(--b>=0) ,而不是if(--b>=0)。所以当i=5时 b=1。b-1=0满足while条件,k+1(此时k+1=3)。然后继续循环。b-1=-1,   b>=0不满足条件。跳出循环。这就是b=-1的原因。

0 回复 有任何疑惑可以回复我~
#1

卡布奇诺qi 提问者

抱歉我在追问一下,如果是if语句的话,那么结果是b=0吗
2018-07-03 回复 有任何疑惑可以回复我~
#2

卡布奇诺qi 提问者 回复 卡布奇诺qi 提问者

好吧,我已经懂了,附加的问题不需要回答咯,谢谢
2018-07-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这行代码输出为什么是3,-1,大佬求解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信