求助一道习题
求1000以内“完数”的习题,比如6的因子是1、2、3加起来刚好等于6,6就是完数。今天用数组的方式做,但做出来有问题,不仅运行报错,而且显示的结果少了一个。代码如下:
#include "stdio.h"
void main()
{int m,n,i,s;
int a[11];
for(m=2;m<1000;m++)
{
s=m;
n=0;
for(i=1;i<m;i++)
if((m%i)==0)
{
n++;
s=s-i;
a[n]=i;
}
if(s==0)
{
printf("%d its factors are ",m);
for(i=1;i<n;i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
}
}
}
请各位高人指点,为什么出错。。