完数程序 不知道哪里错了#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");
}
}
}
