关于C语言求完数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 03:03:59
#include <stdio.h>
void main()
{int i,k,sum=0,t;
for(i=1;i<1000;i++)
{for(k=1;k<i;k++) if(i%k==0) sum=sum+k;
if(sum==i)
{printf("%d its factor are:",i);
for(t=1;t<i;t++)
if(i%t==0) printf("%d",t);
printf("\n");
}
}
}
我用的是visual c++编译的 ,编译和组建都没有问题 ,可是就是运行不出来结果,哪位高手帮忙看看;
我在上面已经给SUM=0了 为什么在下面还要再写一次呢
用的是6.0

for(i=1;i<1000;i++)
{for(k=1;k<i;k++) if(i%k==0) sum=sum+k;
if(sum==i)
{printf("%d its factor are:",i);
for(t=1;t<i;t++)
if(i%t==0) printf("%d",t);
printf("\n");
}
}

改为:

for(i=1;i<1000;i++)
{ sum=0;
for(k=1;k<i;k++) if(i%k==0) sum=sum+k;
if(sum==i)
{printf("%d its factor are:",i);
for(t=1;t<i;t++)
if(i%t==0) printf("%d",t);
printf("\n");
}
}

********************************************

因为上面的int sum=0是对变量的初始化,如果在下面的for循环中不及时归0,那么在判断下一个数的时候,sum的值就是上次判断时的k值之和。

用的vs几啊?

也可能是结果一闪而逝