辞树 发表于 2021-11-24 19:44:29

完数

#include<stdio.h>

main()
{
int x,y,c,i,sum,t=0;
scanf("%d%d",&x,&y);

    if(x>y)
    {t=x;x=y;y=t;}
      
      for(c=x;c<=y;c++)
    {    sum=0;                     //sum的初始值为什么不能定义在外面呀
          for(i=1;i<=c/2;i++)
                   {if(c%i==0)
                     sum+=i;
                                    
                   }
               if(c==sum)
               printf("%d",c);
          }


}

jackz007 发表于 2021-11-24 19:56:04

       因为每次循环开始的时候都需要让 sum = 0,如果移到循环以外,就无法做到了。

辞树 发表于 2021-11-24 20:01:33

jackz007 发表于 2021-11-24 19:56
因为每次循环开始的时候都需要让 sum = 0,如果移到循环以外,就无法做到了。

谢谢您
页: [1]
查看完整版本: 完数