循环体外和循环体内定义变量的一点思考

本文探讨了在求素数程序中,变量作用域对于算法正确性的影响。通过对比全局变量与局部变量的不同使用方式,解释了为何局部重新初始化变量能够确保素数判断算法的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在循环体外定义的变量为全局变量,循环结束后循环体外定义的变量被循环内的操作赋值,
int main()
{
 int i=100;
   
int j=2;                                 ........1
 for(;i<=200;i++)

  // int j=2;            ..........2
 for(;j<=i;j++)
{
 if(i%j==0)
 {
  break;
 }
}
 if(i==j)
{
 
 printf("%d ",i);
}
这个求素数的程序,当j定义在第一个i的循环外,如标注1,进入i循环体后,i=100,j=2,实现整除跳出j的循环,再进入i的循环,此时i=101,j=3,继续j的循环,直到j的值变为101,跳出第二次j循环,判断i=j后输出i,进入第三次i的循环,此时i=102,在进入第三次j的循环时,j=101;不会重新赋初值,接着判断整除,继续循环,j自加,直到i=102,j=102,进入if判断输出i,输出值为101~200之间的每一个数,当j定义在i的循环内,j的循环外时,如标注2,每次进入j循环,j都会重新赋值j=2,实现素数判断的正确算法。以下为正确编译结果和错误编译结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值