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

来源:4-10 循环结构之三种循环比较

卡布奇诺qi

2018-07-03 09:58

#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回答

  • 慕标8275933
    2018-07-03 13:03:45
    已采纳

    我估计你是在想为什么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的原因。

    卡布奇诺qi 回复卡布奇诺qi

    好吧,我已经懂了,附加的问题不需要回答咯,谢谢

    2018-07-03 13:54:34

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题