#define M 1000
#include<stdio.h>
int main()
{
int n,i,s;
for(n=2;n<=M;n++)
{
s=0;
for(i=1;i<n;i++)
if(n%i==0)
s+=i;
if(s==n)
{
printf("%d,its factors are:",n);
for(i=1;i<n;i++)
if(n%i==0)
printf("%d ",i);
printf("\n");
}
}
return 0;
}以上我编写的程序,然后问题在于最后一个for循环语句,本人将下面的if条件补在for里面:for(i=1;i<n&&n%i==0;i++)结果输出有误,希望大家能帮着运行这个程序,两种情况输出结果不一样,后者明显错误,但为什么?发布
1 回答
Absolute_Duo
TA贡献13条经验 获得超1个赞
for(i=1;i<n;i++)
if(n%i==0)
printf("%d ",i);
这之中的if判断不会中断循环的执行,即判断为false不会跳出循环;
但for(i=1;i<n&&n%i==0;i++)中n%i==0的判断一旦为false就会跳出循环;
- 1 回答
- 0 关注
- 2014 浏览
添加回答
举报
0/150
提交
取消