最大的错误出在k没有在每次判断之前归0,修改如下:
//---------------------------------------------------------------------------
#include
#include
main()
{
int i,j,k=0;
for(i=1;i<1001;i++)
{
k=0;/*注意这里*/
for(j=1;j{
if(i%j==0)
k=k+j;
}
if(k==i)
printf("%d\n",i);
}
system("pause");
}
//---------------------------------------------------------------------------
main()
{
int i,j,k=0;
for(i=1;i<1001;i++)
{
k = 0; //k要初始化为0;
for(j=1;j{
if(i%j==0)
k=k+j; //此处k要叠加,需要注意初始化问题
}
if(k==i)
printf("%d\n",i);
}
system("pause");
}
他们说的是对的,我就不想再说一大篇了