| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 757 人关注过本帖
标题:修改程序
只看楼主 加入收藏
sadsatan
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-13
收藏
 问题点数:0 回复次数:5 
修改程序
//一个数如果恰好等于它的因子之和,这个数就称为“完数”;输出1000内的所有完数;



#include <iostream>
using std::cout;
using std::cin;
using std::endl;


int main()
{
    int a,top,sum,n,count;

    top=1000;
    sum=0;
    
    for(a=2;a<=top;a++)
    {
        for(n=1;n<a;n++)
        {
            if(a%n==0)
                sum=sum+n;
        }
    }

    if(sum==a)
    {
        cout<<sum<<"its farctors are ";
        for(count=1;count<a;count++)
        {
            if(sum%count==0)
                cout<<count<<","<<;
        }
    }
    return 0;

}
输出不来数,直接就是press any key to continue;
请帮找下毛病
搜索更多相关主题的帖子: sum count std using 
2008-04-19 12:16
jiefen111
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-4-16
收藏
得分:0 
#include <iostream>
using std::cout;
using std::cin;
using std::endl;


int main()
{
    int a,top,sum,n,count;

    top=1000;
   
   
    for(a=2;a<=top;a++)
    {
        sum=0;
        for(n=2;n<a/2;n++)
        {
            if(a%n==0)
                sum=sum+n;
        }
        if(sum==a)
        {
          cout<<sum<<"its farctors are ";
          for(count=2;count<a/2;count++)
        {
            if(sum%count==0)
                cout<<count<<","<<;
         }
       }

    }

        return 0;

}
这是在你程序基础上改的,你再好好想想吧,逻辑错了
2008-04-19 13:39
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
#include<iostream>
using namespace std;
int main(void)
{
  int s[5] ={0} ;
 for(int n = 1000; n>1; n--)
{
   for(int a = 2 ,sum =0 ,i=0; a < n; a++)
   {
        if( n%a == 0 )
        {
            sum += a;   s[i++] = a;
         }
    }
   if( ++sum == n)
   {
       cout<< sum <<endl;
       for(int i = 0; i<5; s[i] = 0,i++)
           if( s[i] ) cout<<s[i]<<",";
       cout<<endl;
    }
   else for(int i=0; i< 5; s[i++]=0);
}
 return 0;
}

樱花大战,  有爱.
2008-04-19 13:53
sadsatan
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-13
收藏
得分:0 
嗯,谢谢了……我一见嵌套脑子就混乱……
2008-04-19 15:54
sadsatan
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-13
收藏
得分:0 
看看这个,在VC6.0上试试,我快吓挂了……
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
    int top,sum,n,count,a;
    top=1000;
    

    for(n=1;n<1000;n++)
    {
        sum=0;
        for(count=1;count<n;count++)
            n%count==0;
            sum+=count;
    

        if(sum==n)
        {
            cout<<sum<<" its factors are ";
            for(a=1;a<sum;a++)
            {
                if(sum%a==0)
                    cout<<a;
            }
        }
    }
    return 0;
}
2008-04-19 16:46
sadsatan
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-4-13
收藏
得分:0 
//经过仔细的修改,终于……
//完数:
//例如:6=1+2+3;其中1,2,3是它的所有的因子(除6本身),并且6等于它的所有因//子数的和(除它本身)
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
    int top,sum,n,count,a;
    top=1000;
    

    for(n=1;n<1000;n++)
    {
        sum=0;
        for(count=1;count<n;count++)
        {
            if(n%count==0)
            sum+=count;
        }
        
    

        if(sum==n)                
        {
            cout<<n<<" its factors are ";
            for(a=1;a<n;a++)
            {
                if(n%a==0)
                    cout<<a<<",";
            }
            cout<<endl;
        }
    }
    return 0;
}

            
在此谢谢大家对我的无私帮助
2008-04-19 17:13
快速回复:修改程序
数据加载中...
 
   



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

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