#include
int main()
{
int n,i,s=0;
printf("200以内的完数有:");
for(n=2;n<=200;n++)
{
s=0;//针对每一个n,s必须重设为0
for(i=1;i{
if(n%i==0)s+=i;
}
if(s==n){
printf("%d:1",n);
for(i=2;iif(n%i==0)printf(" %d",i);
}
printf("\n");
}
}
return 0;
}
在外层for的循环体开始处加了s=0
编程问题我觉得你这个得问专业学这个得