c语言问题;题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程가

2025-01-06 15:16:51
推荐回答(3个)
回答1:

表面看这种事情是“绝对”不会发生的,但这里确实发生了,那只能说明代码有其他漏洞,绝非只是int k[10];和 int i,j,n,s;的先后次序问题;因为没有关联的变量的声明次序是不敏感的。你把int k[10];改成int k[500];试试,我想不会再有你说的问题了。然后自己琢磨原因,琢磨不出来我再回答你……(估计int k[100];也可以)!

回答2:

没有少啊,是6 ,28,496。

回答3:

你定义的k[10]太小了,中间有的数的因子个数大于10个,此时数据就会溢出,导致结果异常。
定义长一些就可以了,保证存储因子时不会溢出。