帮我解释一下这个c程序为什么是8,-2

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:12:53
#include <stdio.h>
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(void)
{
int i,b,k=0;
for(i=1;i<=5;i++)
{
b=i%2; printf("当i=%d时 b=%d\n",i,b);
while(b-->=0)
{
k++;
printf("while循环中b=%d k=%d\n",b,k);
}
}
printf("最后结果为:k=%d,b=%d",k,b);
}
/**************
这是运行结果
当i=1时 b=1
while循环中b=0 k=1
while循环中b=-1 k=2
当i=2时 b=0
while循环中b=-1 k=3
当i=3时 b=1
while循环中b=0 k=4
while循环中b=-1 k=5
当i=4时 b=0
while循环中b=-1 k=6
当i=5时 b=1
while循环中b=0 k=7
while循环中b=-1 k=8
最后结果为:k=8,b=-2
***************/

每循环结束后各的变量的值:
i b k
1 -2 2
2 -2 3
3 -2 5
4 -2 6
5 -2 8
帮我解释一下他为什么不是8,-2