void main()
{
int a,b;
for(b=3;b<=50;b++)
{
for(a=2;a<b;a++) //在这里给a赋值
if(b%a==0) break;
if(b==a) printf("%d\t",b);
}
getchar();
}
void main()
{
int a=2,b; //在这里给a赋值
for(b=3;b<=50;b++)
{
for(;a<b;a++)
if(b%a==0) break;
if(b==a) printf("%d\t",b);
}
getchar();
}上面代码成功运行下面结果:输出3到50所有数请解释下为什么会不一样
1 回答
已采纳

onemoo
TA贡献883条经验 获得超454个赞
上面那个代码:
每次进入for(a=2;a<b;a++) 循环时,a的值都是2。
下面的代码:
a的值在一开始是2,但这个 for(;a<b;a++) 不会在循环前将a赋值为2,所以a的值将累加上去。
- 1 回答
- 0 关注
- 1167 浏览
添加回答
举报
0/150
提交
取消