while问题
有以下程序:main()
{int a=2,b=7;
do {b-=a;a++;}
while (b--<0);
printf ("%d\n",b);
}
我是这样算的:第一次:b=b-a=7-2=5,a=3;(条件成立,因为b--<0),
第二次:b=b-a=5-3=2,a=4;(条件成立,因为b--<0),
第三次:b=b-a=2-4=-2,a=5;条件不成立,所以执行后续语句,b=-2即为所求。但标准答案是4啊,为什么?
main()
{int a=2,b=7;
while (b--<0);
b-=a;
;a++;
printf ("%d\n",b);
getch();
}
运行结果是 : 4
b--后 b=4
第二次没运行 因为 b-=a= 4-3=1; b--=1-1=0<0
所以b=4
这个是错的
do
while(b--<0) 这里的条件是执行DO后B=5再自减1,即4<0不成立,跳出循环 b=4结果