| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:求最大公约数,请问哪里出错?谢谢啦~
只看楼主 加入收藏
天使的恶魔
Rank: 1
来 自:广东
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-9-14
结帖率:83.33%
收藏
已结贴  问题点数:17 回复次数:7 
求最大公约数,请问哪里出错?谢谢啦~
# include <stdio.h>
# include <stdlib.h>
int main ()
{
    int m,n;
    printf("Enter two integers:");
    scanf("%d %d",&m,&n);   
    do{
    m == n;
    n == m%n;
    }while (n!=0);   
    printf("Greatest common divisor:%d",m);  
    system("pause");
    return 0;
}
   
搜索更多相关主题的帖子: 最大公约数 
2010-10-17 00:44
天使的恶魔
Rank: 1
来 自:广东
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-9-14
收藏
得分:0 
  新手,真的C语言觉得很难~~~

记住我最好的方式就是忘了我
2010-10-17 00:45
jerry008008
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-16
收藏
得分:0 
==       汗………这种题多看看书就知道错哪了,何必发帖求助呢
2010-10-17 00:56
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:17 
#include<stdio.h>
int main ()
{
    int m,n,r;
    printf("Enter two integers:");
    scanf("%d %d",&m,&n);   
    r=m % n;
    while(r)
    {
    m = n;
    n = r;
    r = m % n;
    }   
    printf("Greatest common divisor:%d",n);  
    system("pause");
    return 0;
}

重剑无锋,大巧不工
2010-10-17 01:27
tchchao
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-10-16
收藏
得分:0 
回复 楼主 天使的恶魔
循环那需要第三变量的转化
2010-10-17 09:54
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
main( )
{int n=0,m=0,temp,r;
printf(“Please Input m and n value:\n”);
scanf(“%d%d”,&m,&n);
if(m>n)
{temp=m;
m=n;
n=temp;
}
r=m%n;
while(r!=0)
{m=n;
n=r;
r=m%n;
}
printf(“The MAX Factor is %d\n”,n);
}

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-10-17 10:28
编我所爱
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-10-17
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a,b,i=1,j,t;
    printf("请输入两个数的值a,b:");
    scanf("%d,%d",&a,&b);
    if(a<b)
    {
        t=a;a=b;b=t;
    }、、这一步是将小的值给a,大的值给b
    for(i=1;i<=a;i++)
    {
        if(a%i==0&&b%i==0):执行循环,若i同时能被a和b整除,说明i为他们的最大公约数:令j=i即可 然后再循环体外输出即可
            j=i;
    }
        printf("最大公约数是%d:",j);
}
这个我已经调试过,是正确的,希望能帮到你
2010-10-17 17:47
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
7楼兄弟的算法很直接啊,直接从最大公约数的定义出发。出于练习的话我不多说了,但实际应用中别这么写,效率太差。CPU资源不是这么浪费的。
补充点小知识,楼主使用的算法叫欧几里德算法,也叫辗转相除法,是计算最大公约数的传统算法,只要不是算大素数效率还是不错的。关于该算法的证明可以在初等数论中找到。
6楼的朋友在应用算法之前先换了一下两个数的位置以保证是用大数除小数。这个其实没什么必要,不置换也不过多求一次模而已,对复杂度没什么影响。

重剑无锋,大巧不工
2010-10-18 18:17
快速回复:求最大公约数,请问哪里出错?谢谢啦~
数据加载中...
 
   



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

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