c程序问题,请帮助

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:25:30
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",a);
}
答案是8,为什么?

a的取值范围规定了最多循环次数为100,且当b超过20的时候退出循环。b从1开始每次+3,当到第七次时b的值为22,再循环时发现b超过了20,跳出循环!
a的值等于1+7=8~~

B的值如下:1,4,7,10,13,16,19,22
也就是刚好在For里循环了7次,故a=8

B的值如下:1,4,7,10,13,16,19,22
也就是刚好在For里循环了7次,故a=8