| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 400 人关注过本帖
标题:c语言新手求指错(很短的一段代码)
只看楼主 加入收藏
zxr_fx
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2012-11-21
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:7 
c语言新手求指错(很短的一段代码)
我的目的是要把1-1000内的所有完数输出,比如说6是完数6的因子为1,2,3。。且6=1+2+3.
就是说一个数所有因子之和为那个数,那么那个数就是完数。







#include <stdio.h>
void main()
{int n,i,s;
i=1;
s=0;
n=1;
for(;n>=1&&n<=1000;n++)
{
    for(;i<n;i++)
    {if((n%i)==0)
    {s=s+i;}
    }
if(s==n)
{printf("%d\t",n);}}
printf("\n");
}
搜索更多相关主题的帖子: include 
2012-11-27 18:37
浅唱我的Time
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:98
专家分:562
注 册:2012-9-24
收藏
得分:10 
回复 楼主 zxr_fx
#include<stdio.h>
#include<math.h>
void main()
{
 int i,j=1,sum=0;
 
 for(i=1;i<=1000;i++)
 {
  while(i>j)
  {
   if(i%j==0)
      sum=sum+j;
      j++;
  }
  if(sum==i)
  {
   printf("%d its factors are 1",i);
   for(j=2;j<i;j++)
   {if(i%j==0)
   printf(",%d",j);}
   printf("\n");
  }
  sum=0;
  j=1;
 }
 
}
2012-11-27 18:46
zxr_fx
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2012-11-21
收藏
得分:0 
回复 2楼 浅唱我的Time
请问我的代码那里错了??

菜鸟成长中
2012-11-27 18:49
zxr_fx
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2012-11-21
收藏
得分:0 
代码没有运行结果啊。。

菜鸟成长中
2012-11-27 18:53
张朝成
Rank: 4
等 级:业余侠客
帖 子:149
专家分:265
注 册:2012-3-22
收藏
得分:10 
你的代码很乱,你看看这个:
#include<stdio.h>
void main()
{   
    int n,i,s;
    for(n=2;n<=1000;n++)
    {   
        s=0;
        for(i=1;i<n;i++)
            if(n%i==0)
                //这一块是如果能够整除,那么就是该数的因子,我们累加起来
                s+=i;
        if(s==n)
            //因子的和与原数比较,如果正确就输出
            printf("%d\n",n);
    }
}
收到的鲜花
  • zxr_fx2012-11-28 12:42 送鲜花  2朵   附言:我很赞同
2012-11-27 19:03
zxr_fx
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2012-11-21
收藏
得分:0 
我的跟你的差不多啊,为什么你的是对的,我的是错的,我再看看

菜鸟成长中
2012-11-27 19:13
zxr_fx
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2012-11-21
收藏
得分:0 
回复 5楼 张朝成
改成这样就好了,不知道为什么


#include <stdio.h>
void main()
{int n,i,s;
for(n=1;n<=1000;n++)
{s=0;
    for(i=1;i<n;i++)
    {if(n%i==0)
    {s=s+i;}}
   
if(s==n)
{printf("%d\t",n);}}
printf("\n");
}

菜鸟成长中
2012-11-27 19:21
zxr_fx
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2012-11-21
收藏
得分:0 
回复 5楼 张朝成
不是乱的问题,主要是,i=1与s=0要放到里面去,放到循环里面去,因为第二个循环要连续执行,所以i和s的值要一直初始化。。

菜鸟成长中
2012-11-27 19:28
快速回复:c语言新手求指错(很短的一段代码)
数据加载中...
 
   



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

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