标题:麻烦帮我看看这道题是怎么回事,谢谢!
只看楼主
sibswjc
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-9-5
结帖率:20%
 问题点数:0 回复次数:2 
麻烦帮我看看这道题是怎么回事,谢谢!
老谭的那本书(第四版),课本中第141页的第九题,寻找完美数的那道编程题,我自己写的代码如下:
#include <stdio.h>
int main()
{
int n,i,sum=0;
for(n=2;n<=1000;n++)
{   
for(i=1;i<=n/2;i++)
{ if(n%i==0)
sum+=i; }
if(sum==n)   
printf("The perfect number is %d\n",n);
}
return 0;
}

在VC6中编译和组建均能通过,但是运行没有结果,我看了一下答案,区别就在于sum初始没有赋值,而是在第一个for循环中将其赋值为0,我不知道这个和初始赋值有什么差别,想了半天也没有明白,因为是菜鸟,所以向大家请教一下这个是怎么回事。
搜索更多相关主题的帖子: number include perfect 
2012-09-11 19:25
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
得分:0 
你第一次 n的循环结束以后   sum的值已改变   所以应该这样  ,把sum放在第一个循环里面,n没循环一次   sum 还原成0一次  
#include <stdio.h>
int main()
{
int n,i;
for(n=2;n<=1000;n++)
{    sum=0;
for(i=1;i<=n/2;i++)
{ if(n%i==0)
sum+=i; }
if(sum==n)   
printf("The perfect number is %d\n",n);
}
return 0;
}
2012-09-11 20:58
q13678986740
Rank: 4
等 级:业余侠客
帖 子:114
专家分:245
注 册:2012-7-7
得分:0 
个人感觉for嵌套就好像数学中的树状图,树状图应该知道吧,想想就明了
2012-09-12 00:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-381182-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.344842 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved