输出1000内的完数及其因子,能运行但是没有结果!

#include<stdio.h>
int W(int x);
int main()
{
    int x,j;
    for(x=1;x<1000;x++)
    {
        if(W(x)==1)
        printf("完数为:%d",x);
        for(j=1;j<x;j++)
        {
            if(x%j==0)
            {
                printf("该完数的因子为:%d",j); 
            }
        }
    }
}
int W(int a)
{
    int i;
    int sum=0;
        for(i=0;i<a;i++)
        {
            if(a%i==0)
            {
                sum+=i;
            }
            
        }
            if(sum==a)
            return 1;
            else
            return 0;
}

供参考:

#include<stdio.h>
int W(int x);
int main()
{
    int x,j;
    for(x=1;x<1000;x++)
    {
       if(W(x)==1)
       {            //修改
          printf("完数为:%d ,该完数的因子为:",x); //修改
          for(j=1;j<x;j++)
          {
              if(x%j==0)
              {
                  printf(" %d",j); //修改
              }
          }
          printf("\n"); //修改
       }  //修改
    }
    return 0;
}
int W(int a)
{
    int i;
    int sum=0;
    for(i=1;i < a;i++) // for(i=0;i<a;i++) //修改
    {
       if(a%i==0)
       {
          sum+=i;
       }
    }
    if(sum==a)
        return 1;
    else
        return 0;
}

建议把完整的代码放到代码块里贴出来

你的子函数的for循环中,i=0,0不能作为分母哦,改一下,改为1就好了