这个代码为啥运行不出来呀,急

#include<stdio.h>
int main()
{
    int n,i,s=0;
    for(n=1;n<=1000;n++)
  {  for(i=1;i<=n/2;i++)
   {
      if(n%i==0)
      s=s+i;}
    if(s==n)
   { printf("%d,its factors are",n);
   for(i=1;i<=n/2;i++)
  { if(n%i==0)
  printf("%d",i);}
 
   }}
    return 0;
    }
    这个代码为啥运行不出来呀

for循环里用了i后。怎么嵌套for循环还有i?

 s你忘了每次循环应该初始化,第二个i循环改成j了,还有一些其他细节错误,给你改好了

#include<stdio.h>
int main()
{
    int n,i,s=0,j;
    for(n=1; n<=1000; n++)
    {
        s=0;
        for(i=1; i<=n/2; i++)
        {
            if(n%i==0)
                s=s+i;
        }
        if(s==n)
        {
            printf("%d,its factors are",n);
            
            for(j=1; j<=n/2; j++)
            {
                if(n%j==0)
                    printf("%d ",j);
            }
            printf("\n");
        }
    }
    return 0;
}