for循环逻辑问题!小白求大神教导!
求助大神!为什么带颜色的那个int y=0; 搁到**处(也就是for循环的外面)就不能正确输出??


ps:这个程序是输出1000以内的完数。
#include <stdio.h>
int main()
{
**
for(int i=1;i<=1000;i++)
{
int y=0;
for(int j=1;j<=i-1;j++)
{
if(i%j==0)
{
y=y+j;
}
}
if(y==i)printf("%d\n",i);
}
return 0;