判断是否为素数c语言

这是i前面没有加int 的情况,运行正确

img

img

这是i前面加了int的情况,结果出现错误

img

img

我想问下为什么加了int和不加int 会出现两种情况。
谢谢!

这跟变量的作用域有关,
在 for(int i=2; i<n;i++)
if(n%i==0) break;
这里声明定义的 i ,它的作用域就在 for 开始的地方 到 break; 结束 , break;后面语句里的 i 都是代码开始的时候定义的 i 。

因为你if(i<n)这个里面的i不是for循环里面声明的i,你在main函数一开始声明了i,if条件判断里面的i是第三行的i,他们两个的值不一样

地址不一样,一个main全局一个局部。你可以看下俩个地址

i前面已经声明了