为了账号安全,请及时绑定邮箱和手机立即绑定

C语言设计程序找出完数中的for循环问题

C语言设计程序找出完数中的for循环问题

C C++
Dr_风扬 2015-04-27 16:17:01
#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就会跳出循环;

查看完整回答
反对 回复 2015-04-27
  • 1 回答
  • 0 关注
  • 2014 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信