完数程序 不知道错哪了

完数程序 不知道哪里错了#include stdio.hmain(){int i,k,temp,j,n,array[80]n0//记录完数的个数for(

完数程序 不知道哪里错了
#include <stdio.h>
main()
{
int i,k,temp,j,n,array[80];
n=0; //记录完数的个数
for(i=2;i<1000;i++)
{  
temp=0;
for(k=1;k<i;k++) 
{
if(i%k==0)  
{  
temp+=k;
array[n++]=k; //将找到的因子赋给array[]
}
}
if(temp==i)  
{  
printf("%d,its factors are ",i);
for(j=0;j<n;j++)
printf("%4d",array[j]);
printf("\n");
}  
}
}
看了半天不知道哪里错了 求帮组

[解决办法]

C/C++ code
void main(void){    int i, k, temp, j, n, array[80];    //n = 0; //记录完数的个数    for (i = 2; i < 1000; i++)    {           n = 0; //记录完数的因子个数        temp = 0;        for (k = 1; k < i; k++)        {            if (i%k == 0)            {                temp += k;                array[n++] = k; //将找到的因子赋给array[]            }        }        if (temp == i)        {            //array[n++] = i;            printf("%d,its factors are ", i);            for (j = 0; j < n; j++)                printf("%4d", array[j]);            printf("\n");        }       }    getch();}
[解决办法]
你把n=0; //记录完数的个数 ; 放在第一个for()循环里面就可以了

#include <stdio.h>
main()
{
int i,k,temp,j,n,array[80];

for(i=2;i<1000;i++)
{
n=0; //记录完数的个数
temp=0;
for(k=1;k<i;k++) 
{
if(i%k==0)
{
temp+=k;
array[n++]=k; //将找到的因子赋给array[]
}
}
if(temp==i)
{
printf("%d,its factors are ",i);
for(j=0;j<n;j++)
printf("%4d",array[j]);
printf("\n");
}
}
}