weixin_52834332 2021-06-25 21:32 采纳率: 77.4%
浏览 15
已采纳

想知道为什么我写的这段代码会多出一个100来?

  1. 一个数如果恰好等于它的所有因子之和,这个数就称为“完数”。请编写一个判别 m 是否为完数的函数,并编写主函数,通过调用此函数统计自然数 1 — 100 间完数的个数。

     

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-06-25 22:01
    关注

    供参考:

    #include<stdio.h>
    
    int perfect()
    {
        int i,x,sum,cnt=0;
        for(i=1;i<=100;i++)
        {
            sum=0;
            for(x=1;x<i;x++)
            {
                if(i%x==0)sum+=x;
            }
            if(i==sum)
            {
                cnt++;
                printf("%d ",i);
            }
        }
        return cnt;
    }
    
    int main()
    {
        printf("\ncount=%d\n",perfect());
        
        return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?