| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 464 人关注过本帖
标题:求助一道习题
取消只看楼主 加入收藏
黄昏の腕轮
Rank: 2
等 级:论坛游民
帖 子:64
专家分:12
注 册:2009-6-13
结帖率:100%
收藏
 问题点数:0 回复次数:1 
求助一道习题
求1000以内“完数”的习题,比如6的因子是1、2、3加起来刚好等于6,6就是完数。今天用数组的方式做,但做出来有问题,不仅运行报错,而且显示的结果少了一个。
代码如下:
#include "stdio.h"
void main()
{int m,n,i,s;
 int a[11];
 for(m=2;m<1000;m++)
  {
      s=m;
      n=0;
      for(i=1;i<m;i++)
        if((m%i)==0)
            {
             n++;
             s=s-i;
             a[n]=i;
            }
      if(s==0)
       {
           printf("%d its factors are ",m);
           for(i=1;i<n;i++)
            printf("%d ",a[i]);
            printf("%d\n",a[n]);
       }
  }
}
请各位高人指点,为什么出错。。
搜索更多相关主题的帖子: 习题 
2009-08-11 20:19
黄昏の腕轮
Rank: 2
等 级:论坛游民
帖 子:64
专家分:12
注 册:2009-6-13
收藏
得分:0 
以下是引用jecci在2009-8-11 21:53的发言:你定义的数组的长度太小了,在执行过程中回出现数组越界错误,这也是c语言最容易出现的错误之一,你把数组长度定义为20也许就不会出错了。
试了,确实是数组小了的原因,改了30就好了。。谢谢
2009-08-12 00:45
快速回复:求助一道习题
数据加载中...
 
   



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

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