为什么窗口没输出啊?

好奇怪,新手上路。有没有朋友帮忙看一下
求1000以内的完数。

img

img

你的边界条件应该是j<num,而不是1000

你的内存循环应该小于num

#include <stdio.h>
int main()
{
    int num, sum, i;
    for(num = 1; num <= 1000; num ++)
    {
        sum = 0;      //每次判断一个数都要将 sum 初始化为 0
        for (i = 1; i < num; i++)
        {
            if (num % i == 0)   //num 能被 i 整除,说明 i 是 num 的因子
            {
                sum += i;    //累加因子
            }
        }
        if(sum == num)
        {
            printf("%d\n", num);
        }
    }
    return 0;
}

img

你看看完全数的定义:

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

注意:是除了自身之外的约数!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
你里面的for循环条件改为j<num就对了!!!!!!!