| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:大家看一下啥问题,没有输出结果
只看楼主 加入收藏
蓝色精灵Dsy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-10-29
结帖率:0
收藏
 问题点数:0 回复次数:5 
大家看一下啥问题,没有输出结果
  一个整数等于该数所有因子之和,则称该数是一个完数。例如:6和28都是完数,。因为6=1+2+3,28=1+2+4+7+14
 #include<stdio.h>
 main()
{
 int i,j,sum=0;
 for(i=5;i<=30;i++)
  {
   for(j=1;j<i;j++)
     if(i%j==0)
    sum+=j;
      if(sum==i)
    printf("%4d",i);
   }
}
 找不出来有什么问题,可就是结果不对,大家帮忙改下,谢了
搜索更多相关主题的帖子: 输出 结果 
2009-10-30 23:09
kandylau
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-6-2
收藏
得分:0 
你的算法是错误的,你每次除以j的时候i应该也要变化的
2009-10-30 23:15
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 
我拿去做一下,明天给你答案。。。!
2009-10-30 23:18
feixiangma16
Rank: 2
等 级:论坛游民
帖 子:7
专家分:29
注 册:2009-10-29
收藏
得分:0 
貌似是你的sum初始化放错位置了。放在第一个for前面,sum一直增加。应该吧sum=0放在第二个for前。
2009-10-30 23:24
feixiangma16
Rank: 2
等 级:论坛游民
帖 子:7
专家分:29
注 册:2009-10-29
收藏
得分:0 
回复 2楼 kandylau
这问题咱们新手来处理一下,但似乎其中并没有“除以j”的地方啊
2009-10-30 23:26
看海的小星
Rank: 2
等 级:论坛游民
帖 子:30
专家分:51
注 册:2009-10-11
收藏
得分:0 
#include<stdio.h>
void main()
{
int i,j,sum;
for(i=5;i<=30;i++)
  {
    sum=0;
   for(j=1;j<i;j++)
       if(i%j==0)
          sum+=j;
      if(sum==i)
    printf("%4d",i);
   }
}


答案是显然的sum=0;这个语句要在循环体里面才有效。 因为没执行一次i的循环要给sum重新归零
2009-10-30 23:28
快速回复:大家看一下啥问题,没有输出结果
数据加载中...
 
   



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

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