| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 465 人关注过本帖
标题:怎样得到想要的输出格式
只看楼主 加入收藏
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:5 
怎样得到想要的输出格式
#include
int main()
{
    int i,n,sum=0;
    for(n=1;n<=1000;n++)
    {
        for(i=1;i
2014-06-27 23:25
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
话说怎么没发出来
再发一遍
#include<stdio.h>
int main()
{
    int i,n,sum=0;
    for(n=1;n<=1000;n++)
    {
        for(i=1;i<n;i++)
        {
            if(n%i==0) sum=sum+i;
        }
        if(sum==n) printf("%d is perfect number\n",n);
        sum=0;
    }
    return 0;
}
/*这是一个关于求1到1000完全数的程序,我想要得到输出格式是 n its factors are i1,i2,i3...in(n为完全数,i1,i2...in为因子)(ps:上述只是权宜之计)
原本我设想数组来储存,但无法同时输出,无奈所学知识太少,所以还望大家赐教*/

坚持----------------------------------唯一的道路
shit ! ! !
2014-06-27 23:27
茅十八
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:123
注 册:2014-3-11
收藏
得分:10 
回复 2 楼 wssy213
#include<stdio.h>
int main()
{
    int i,n,sum;
    int iArray[10],cnt=0;//定义个能装10个元素的数组,cnt用来指明已使用的情况
    for(n=1;n<=1000;++n,sum=0)
    {
        for(i=1;i<n;++i)
        {
            if(n%i==0)sum+=i;
        }
        if(sum==n)
        {
            iArray[cnt++]=n;// 把完全数赋值给数组,然后数组下标加1
        }
    }
    printf("its factors are :");
    for(n=0;n<cnt;++n)
        printf("%d ",iArray[n]);//打印数组
    return 0;
}

个人QQ:1789851851,有学习问题,欢迎找我讨论,另外Win32 SDK开发群:179492890
2014-06-28 00:20
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
恩,可能是我没描述清楚,让大家误解了,我想要的输出格式是以下这种结构的:
例如:
6 its factors are 1,2,3
28 its factors are 1,2,4,7,14
496 its factors are 1,2,4,8,16,31,62,124,248
其实说起来这个问题好像没有什么实际意义,但是就是想把它给解决掉
另外,我觉得这种算法不能达到效果,或许应该换种思考方式

坚持----------------------------------唯一的道路
shit ! ! !
2014-06-28 11:15
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
程序代码:
#include <stdio.h>


int main()
{
    for(int i=2;i<20000;i++)
    {
        int m=1;
        int sum=0;
        int num=0;
        while(m<i)
        {
            if(i%m==0)
            {
                sum+=m;
                num++;
            }
            m++;
        }
        if(sum==i)
        {
            printf("%5d 是一个完全数 它有%3d个因子  它等于\n",m,num);
            m=1;
            while(m<i)
            {
                if(i % m==0 && num>1)
                {
                    printf(" %d +",m);
                    num--;
                }
                else 
                    if(i % m==0 && num==1)
                    {
                        printf(" %d ",m);
                        num--;
                    }
                m++;
            }
            printf("\n");
        }
    }
    return 0;
}

DO IT YOURSELF !
2014-06-28 12:27
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
搞懂了,谢谢

坚持----------------------------------唯一的道路
shit ! ! !
2014-06-28 12:59
快速回复:怎样得到想要的输出格式
数据加载中...
 
   



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

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