一个求1000以内完数的疑问 求解
一个求1000以内的完数程序main()
{ int i,j,s;
for(i=2;i<=1000;i++)
{ s=0;
for(j=1;j<i;j++)
if(i%j==0) s=s+j;
if(s==i)
{ printf("%d ",i);
for(j=1;j<i;j++)
if(i%j==0) printf("%d ",j);
printf("\n");
}
}
system("pause");
}
这个能正常输出结果 但是如果把 把S=0 放在声明部分 就不显示结果 如下
main()
{ int i,j,s;
s=0;
for(i=2;i<=1000;i++)
{ for(j=1;j<i;j++)
if(i%j==0) s=s+j;
if(s==i)
{ printf("%d ",i);
for(j=1;j<i;j++)
if(i%j==0) printf("%d ",j);
printf("\n");
}
}
system("pause");
}
求大神 指点下为什么