這行代碼輸出為什么是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);
}
#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);
}
2018-07-03
舉報(bào)
2018-07-03
我估計(jì)你是在想為什么b最后是=-1 而不是等于0。?
因?yàn)樽詈髮?duì)b操作的語(yǔ)句是while(--b>=0) ,而不是if(--b>=0)。所以當(dāng)i=5時(shí) b=1。b-1=0滿足while條件,k+1(此時(shí)k+1=3)。然后繼續(xù)循環(huán)。b-1=-1,? ?b>=0不滿足條件。跳出循環(huán)。這就是b=-1的原因。