我正在尝试使C程序找到小于n的友好数字.
Amicable数字是两个不同的数字,因此相关的是每个的适当除数的总和等于另一个数.
友好数字的例子(220,284); 220的适当除数是1,2,4,5,10,11,20,22,44,55和110,其中和为284; 284的适当除数是1,2,4,71和142,其中总和是220.
到现在为止,我已经计算了每个数的除数之和,并将它们放入数组中;
s [0] = 0,s [1] = 1; s [2] = 1 + 2 = 3,s [3] = 1 + 3 = 4,依此类推.
但我的程序崩溃了,调试器里什么都没有.一切都打印得很好,但毕竟返回-1073741819并且程序崩溃了.
#include#include int sumofdivizor(int nr) { //nr=number,s=sum of the divisors of nr int i,s=0; for(i=1;i<=nr;i++) { if(nr%i==0) { s=s+i; } else continue; } return s; } int main() { int *s,n,i; s =(int*)malloc(n*sizeof(int)); s[0]=0; printf("Print a limit number\n"); scanf("%d",&n); for(i=1;i
David Schwar.. 7
int *s,n,i; s =(int*)malloc(n*sizeof(int));您正在使用值
n
来决定分配多少空间.但是你还没有分配任何价值n
.
1> David Schwar..:int *s,n,i; s =(int*)malloc(n*sizeof(int));您正在使用值
n
来决定分配多少空间.但是你还没有分配任何价值n
.