这个c语言嵌套循环是怎样运行的,结果是怎样得出来的??

img

这个程序是怎样运行的??
为什么结果会是8,-2?

外层循环5次,内层循环看b是奇数还是偶数
第一次循环,b=i%2 =1,while(b-->=0)会执行两次,b-->=0执行过程是先判断b>=0再b=b-1,所以,k就增加2,等于2
第二次循环,b=i%2=0,while循环执行一次,k变为3
第三次循环,b=1,执行两次,k变为5
第四次循环,b=0,while执行一次,k变为6
第五次循环,b=1,while执行两次,k变为8
最后一次循环时,b=1,上面解释了,while循环条件是b>=0,那么当b=-1时,循环结束,但由于b--的原因,循环结束后还要执行b=b-1,所以b最后等于-2

主要看b=i%2,奇数为1偶数为0