這行代碼輸出為什么是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
舉報
2018-07-03
我估計你是在想為什么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的原因。