请问这个程序的结果怎么和我自己算的不一样?

img

你少算一个i=4 k=7 ;i=5 k=9
还有就是b的值 ,b=0时 while(b-- >=0)会先判断b是否>=0 结果为true时 b-- 此时b为-1;下一个循环-1>=0结果为false,k++不走 但是b--还是要走的 因此b此时结果是-2.

k=9 应该没啥疑问吧,i为基数 k+2 i为偶数 k+1 k=1+(1+1)+1+(1+1)+1+(1+1)=9
while(b-->=0)
(b --)=0 这个判断成立执行循环体,但是while(b-->=0) 这条语句执行结束后b已经等于-1 了。
然后接着 while(b-->=0) 这时 (b--)=-1 while判断不成立退出循环体,但是b-- 这个语句执行了 所以while(b-->=0) 执行结束后b=-1-1=-2