#include<stdio.h>
void main()
{
int i,j,k,h,s,sum;
int a[20];
s=0;
sum=0;
for(i=2;i<=1000;i++)
{
k=0;
for(j=1;j<i;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;h<k;h++)
{
s+=a[h];
}
if(i==s){printf("%d ",i);sum++;}
}
printf("完数的个数:%d\n",sum);
}
谁能告诉我这个错在哪里了?
你这个程序 我写出来了 我就是想知道,我上边的这个哪里错了,为什么错了?
追答你的数组,你是想用数组来存储因子,但是你有没有考虑过有多少个因子要存储,一旦k到达一定数值时(在我的电脑上是到达91)然后内存就会出错,并且你的数组还只有20个,怎么可能不出问题呢
还有s=0要在外层循环里面