问答详情
源自:4-10 循环结构之三种循环比较

这行代码输出为什么是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);
}

提问者:卡布奇诺qi 2018-07-03 09:58

个回答

  • 慕标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的原因。