标题:输入两个数字求最大公约数 那个例题的解法就是我的算法,帮忙看下那里错 感 ...
只看楼主
二硫化硒
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-4-20
结帖率:0
已结贴  问题点数:10 回复次数:4 
输入两个数字求最大公约数 那个例题的解法就是我的算法,帮忙看下那里错 感谢
#include<stdio.h>
int main()

{int a,b,c,t;
    scanf("%d%d\n",a,b);
    if(b>a) t=a,a=b,b=t;

    while(b=c)
    {
      a-b=c;
     if(b>c) a=b,b=c;
     if(b<c) a=c;
     }
     printf("%d\n",c);
     return 0;
}
例1.用更相减损术求98与63的最大公约数。
解:由于63不是偶数,把98和63以大数减小数,并辗转相减:
98-63=35
63-35=28
35-28=7
28-7=21
21-7=14
14-7=7
所以,98和63的最大公约数等于7。
搜索更多相关主题的帖子: 输入 两个数 最大公约数 例题 算法 
2018-04-21 13:14
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
得分:4 
scsnf("",&a,&b);
if()
{  ;  ;  ;}
while(b==c)
2018-04-21 14:07
lao匡
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2018-4-21
得分:4 
回复 楼主 二硫化硒
a-b=c;
错了
2018-04-21 16:06
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:540
专家分:1158
注 册:2016-9-17
得分:4 
单纯就编译下的错误 楼上讲了

就算法来说的话你也不全

在两个数全是偶数的情况你没写
#include<stdio.h>
int main()

{int a,b,c,t;
    scanf("%d%d\n",a,b);
    if(b>a) t=a,a=b,b=t;

    while(b=c)//c,没有赋初值
    {
      a-b=c;//赋值写法 c=a-b
     if(b>c) a=b,b=c;
     if(b<c) a=c;
     }
    没有跳出条件 会进入死循环
     printf("%d\n",c);
     return 0;
}


穷举是最暴力的美学
2018-04-21 16:59
二硫化硒
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-4-20
得分:0 
回复 4楼 nosnoy
全是偶数的话,不走化简那步,用计算机计算几毫秒的问题。
2018-04-21 17:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486245-1-1.html




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

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