| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 434 人关注过本帖
标题:麻烦帮我看看这道题是怎么回事,谢谢!
只看楼主 加入收藏
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
快速回复:麻烦帮我看看这道题是怎么回事,谢谢!
数据加载中...
 
   



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

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