大凤素根烂了怎么处理:C问题 求结果

来源:百度文库 编辑:高校问答 时间:2024/04/28 22:57:05
main()
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{ b+=3;continue;}
b-=5;
}
printf("%d\n",a);

运行结果是什么? b和a有什么关系吗?我运行了一下结果是8 为什么呢???

当a=1,b=1,因为b%3==1,所以执行b+=3,然后continue
此时a=2,b=4,以此类推...a=3时b=7,a=4时b=10...
到a=7时,b=19;继续按如上规律执行到a=8,然后b变为22,此时b>=20,break跳出for循环,所以最后a的值为8.

对就是8吧
1+1+1+1+1+1+1+1
1+3+3+3+3+3+3+3>=20 break;
此时a应该为8吧
每次循环a都加一次
所以a和循环次数有关
与b到没有直接关系