| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1308 人关注过本帖
标题:输出555555的最大公约数(不包含本身)
只看楼主 加入收藏
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:6 
输出555555的最大公约数(不包含本身)
#include "stdio.h"
void main()
{
    int i,a[100000],j=0;
    for(i=1;i<555555;i++)
        if(555555%i==0)
            a[j++]=i;
        printf("%d\n",a[j-1]);
}
改程序运行结果正确。
但将上面的a[100000]改为a[1000000]后,却运行不出来(如下),求解释,不懂诶,这和数组定义的大小又有什么关系呢??我用的是VC++6.0
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include 公约数 
2011-11-30 12:37
modengwen
Rank: 2
来 自:柳州
等 级:论坛游民
帖 子:21
专家分:19
注 册:2011-11-21
收藏
得分:0 
不是两个数才有公约数的吗?一个数的最大公约数没听说过。我想你的意思是求555555的最大的因子吧?
2011-11-30 13:24
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 楼主 wang155423
数组是局部变量放在栈上,栈是一定大小的,把数组定成全局变量试试

总有那身价贱的人给作业贴回复完整的代码
2011-11-30 13:24
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
收藏
得分:0 
把数据类型int改为long试试,int的数值范围是(-2^16+1~2^16-1);a[1000000]中1000000>2^16-1存放不了,当i>2^16-1后内存会溢出。
2011-11-30 17:09
小夫子
Rank: 2
来 自:哈尔滨
等 级:论坛游民
帖 子:27
专家分:74
注 册:2011-11-17
收藏
得分:0 
恩 int范围没那么大 还有不用循环那么多次 它开方就可以 可以提高效率 那个 ++ 是先加吧后赋值吧 如果是输出就是j
2011-11-30 20:30
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
3楼正解,数组数据量超过10000的最好放在堆上分配内存,也就是定义成全局变量。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-30 20:51
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:0 
哦,谢谢大家
2011-11-30 21:24
快速回复:输出555555的最大公约数(不包含本身)
数据加载中...
 
   



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

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