| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 320 人关注过本帖
标题:求助!关于求最大公约数中的一点问题
只看楼主 加入收藏
shine星珞
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-1-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
求助!关于求最大公约数中的一点问题
这是用辗转相除求最大公约数的
//求最大公约数
#include<stdio.h>
void main()
{
    int a,b,c,d;
    printf("请输入:a,b(a>b)\n");
    scanf("%d%d",&a,&b);
    c=a;
    d=b;
   
    for(;;)
    {
        if(c%d!=0);
        {
            c=c%d;
            c=c-d;
            d=c+d;
            c=d-c;
        }
        if(c%d==0)
        {
            break;
        }
    }
    printf("%d和%d的最大公约数为:%d\n",a,b,d);
}
为什么输入8 4之类的恰好整除的两个数运行不了

[ 本帖最后由 shine星珞 于 2013-1-17 17:00 编辑 ]
搜索更多相关主题的帖子: void include 公约数 shine 
2013-01-17 16:40
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 

if(c%d==0)
{
    break;
}
d = 0 就崩溃了
确认你的算法没有问题?

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-01-17 16:51
shine星珞
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-1-17
收藏
得分:0 
回复 2楼 yuccn
算法没问题,就不知道为什么8 4之类的运行不了
2013-01-17 16:53
洪荒一鼎
Rank: 2
等 级:论坛游民
帖 子:34
专家分:46
注 册:2012-6-27
收藏
得分:10 
if(c%d==0)
        {
            break;
        }
同意2楼。
改成if(c%d==0)
{
  return d;
}
 就可以了

不知道,不懂,知道,了解,懂,精通
2013-01-17 17:11
洪荒一鼎
Rank: 2
等 级:论坛游民
帖 子:34
专家分:46
注 册:2012-6-27
收藏
得分:0 
再加一句,限制下b的范围

不知道,不懂,知道,了解,懂,精通
2013-01-17 17:13
shine星珞
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-1-17
收藏
得分:0 
回复 4楼 洪荒一鼎
不行啊
2013-01-17 17:14
shine星珞
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-1-17
收藏
得分:0 
回复 楼主 shine星珞
不用了,谢谢
2013-01-17 17:45
快速回复:求助!关于求最大公约数中的一点问题
数据加载中...
 
   



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

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