| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1062 人关注过本帖
标题:大哥大姐们看看吧,,求最大公约数和最小公倍数,,那里错了????
只看楼主 加入收藏
子弹上膛
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2012-12-5
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:12 
大哥大姐们看看吧,,求最大公约数和最小公倍数,,那里错了????
#include<stdio.h>
int main()
{


    int m,n,a,b;
    printf("请输入两个正整数\n");
    scanf("%d,%d",&m,&n);

    if(m<n)
        {
        
            a=m;
            m=n;
            n=a;
        }
            for(;a!=0;)
            {
                a=m%n;
                m=n;
                n=a;
               
            }
         printf("最大公约数是%d,最小公倍数是%d\n",n,(n*m)/a);
        
        return 0;
}
搜索更多相关主题的帖子: 看看 最小公倍数 大哥大 公约数 
2013-04-18 10:59
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:1 
m,n的大小在循环里是不时变换的,所以交换要在循环内

www.qunxingw.wang
2013-04-18 11:08
子弹上膛
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2012-12-5
收藏
得分:0 
第一个m,n的交换目的是使m的值始终大于n;第二个m,n的交换是迭代,,,应该不是这里的错吧
2013-04-18 11:14
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:2 
嗯,的确,循环外前面加句a=m%n;循环内第一句放第三句后,试下

www.qunxingw.wang
2013-04-18 12:00
子楠
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:111
专家分:164
注 册:2013-4-9
收藏
得分:2 
#include<stdio.h>
int main()
{
    int m,n,a,b;
    printf("请输入两个正整数\n");
    scanf("%d %d",&m,&n);
        b=m*n;
    if(m<n)
        {
            a=m;
            m=n;
            n=a;
        }
        for(;m%n!=0;)
        {
           a=n;
           n=m-n;
           m=a;
        }
         printf("最大公约数是%d,最小公倍数是%d\n",n,b/n);
        return 0;
}
输入 m n
2013-04-18 12:02
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:2 
公倍数按5楼方式处理

www.qunxingw.wang
2013-04-18 12:16
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:2 
m1=m;n1=n;
     a=m%n;
     for(;a!=0;)
         {
            m=n;
            n=a;
            a=m%n;
            }
最大公约数:n,最小公倍数:m1*n1/n

[ 本帖最后由 helloUJS 于 2013-4-18 13:06 编辑 ]
2013-04-18 12:18
ly371031846
Rank: 2
等 级:论坛游民
帖 子:40
专家分:79
注 册:2013-4-9
收藏
得分:2 
#include<stdio.h>
main()
{int a,b,num1,num2,temp;
printf("please input two number :");
scanf("%d%d",&num1,&num2);
if(num1<num2){temp=num1;
num1=num2;
num2=temp;
}a=num1;b=num2;
while(b!=0){temp=a%b;
a=b;
b=temp;}printf("公约数:%d",a);
printf("公倍数:%d",num1*num2/a);}

辗转相除法
2013-04-19 15:18
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:2 
#include<stdio.h>
int main()
{
    int m,n,a,b;
    printf("请输入两个正整数\n");
    scanf("%d %d",&m,&n);
        b=m*n;
    if(m<n)
        {
            a=m;
            m=n;
            n=a;
        }
        for(;m%n!=0;)
        {
            a=m%n;
            m=n;
            n=a;
               
        }
         printf("最大公约数是%d,最小公倍数是%d\n",n,b/n);
        return 0;
}

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-04-19 15:29
chenzhibin07
Rank: 2
等 级:论坛游民
帖 子:57
专家分:64
注 册:2013-4-10
收藏
得分:2 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
     int m,n,a,b;
     printf("请输入两个正整数\n");
     scanf("%d,%d",&m,&n);
         b=m*n;
     
         for(;m%n!=0;)
         {if(m<n)
         {
             a=m;
             m=n;
             n=a;
         }
            a=n;
            n=m-n;
            m=a;
         }
          printf("最大公约数是%d,最小公倍数是%d\n",n,b/n);
  system("PAUSE");   
  return 0;
}
输入m,n时:要逗号!!!!切记
2013-04-19 15:52
快速回复:大哥大姐们看看吧,,求最大公约数和最小公倍数,,那里错了????
数据加载中...
 
   



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

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