C语言输出10到1000之间所有完全数,这个程序那里错了?

#include <stdio.h>
void main ()
{
int sum,x,i; x=10;sum=0;
for (x=10;x<=1000;x++)
{
for (i=1;i<x;i++)
{ if (x%i == 0)
sum+=i;
}
if (sum == x)
printf("%d\n",x); }
}
#include <stdio.h>
void main ()
{
int sum,x,i;
for (x=10; x <= 1000; x++)
{
sum = 0; //sum在这里信清要等于滑辩前灶颤零。
for (i=1; i<x; i++)
{
if (x%i == 0) sum += i;
}
if (sum == x) printf("%d\n",x);
}
}