| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 509 人关注过本帖
标题:最大公约数的解?求教,到底哪儿错了!
只看楼主 加入收藏
a1028203709
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-10-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
最大公约数的解?求教,到底哪儿错了!
#include <stdio.h>
#include <stdlib.h>
int gcd(int m,int n )
{
    if(m%n==0)  
    return n;
    else   
    return gcd(n,m%n);
}
main()
{
      int a,b,num1,num2,temp;
      printf("请输入两个数:");
      scanf("%d%d",&num1,&num2);
      if(num1<num2)
      {
      temp=num1;
      num1=num2;
      num2=temp;            
      }
      a=num1;
      b=num2;
      gcd(a,b);
      printf("两个数的最大公约数是%d\n",a);
      printf("两数的最小公倍数是%d\n",num1*num2/a);
      system("pause");
      return 0;
}
搜索更多相关主题的帖子: 最小公倍数 include system 
2012-12-03 17:20
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
程序代码:
scanf("%d%d",&num1,&num2);
    if(num1<num2)
    {
        temp=num1;
        num1=num2;
        num2=temp;           
    }
    a=num1;//有必要这样么?直接 a = gcd(num1, num2)多方便
    b=num2;
    a = gcd(a,b);    //返回值为最大公约数
    printf("两个数的最大公约数是%d\n",a);
    printf("两数的最小公倍数是%d\n",num1*num2/a);
    system("pause");
    return 0;


[fly]存在即是合理[/fly]
2012-12-03 17:52
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
printf("两个数的最大公约数是%d\n",a);
怎么能是输出a的值啊亲,应该是gcd(a,b)的值才对,另外比较两个数的大小是没有用的,不必比较大小。被书上的误导了吧

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-12-03 17:56
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:5 
回复 楼主 a1028203709
#include <stdio.h>
#include <stdlib.h>
int gcd(int m,int n )
{
    if(m%n==0)  
        return n;
    else   
        return gcd(n,m%n);
}
main()
{
    int a,b,num1,num2,temp;
    printf("请输入两个数:");
    scanf("%d%d",&num1,&num2);
    if(num1<num2)
    {
        temp=num1;
        num1=num2;
        num2=temp;            
    }
    a=num1;
    b=num2;
    gcd(a,b);
    printf("两个数的最大公约数是%d\n",gcd(a,b));//这里使用这个,因为返回的值就是最大公约数
    printf("两数的最小公倍数是%d\n",num1*num2/gcd(a,b));//还有这里这样写~~~
    system("pause");
    return 0;
}
2012-12-03 18:07
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:5 
回复 楼主 a1028203709
#include <stdio.h>
#include <stdlib.h>
int gcd(int m,int n )
{
    if(m%n==0)  
        return n;
    else   
        return gcd(n,m%n);
}
main()
{
    int a,b,num1,num2,temp;
    printf("请输入两个数:");
    scanf("%d%d",&num1,&num2);
    if(num1<num2)
    {
        temp=num1;
        num1=num2;
        num2=temp;            
    }
    a=num1;
    b=num2;
    gcd(a,b);
    printf("两个数的最大公约数是%d\n",gcd(a,b));//这里使用这个,因为返回的值就是最大公约数
    printf("两数的最小公倍数是%d\n",num1*num2/gcd(a,b));//还有这里这样写~~~
    system("pause");
    return 0;
}
2012-12-03 18:07
星闪夜空
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2012-9-15
收藏
得分:5 
回复 楼主 a1028203709
   楼主自己太粗心了,打印输出printf("两个数的最大公约数是%d\n",a);为什么是a啊!!!
2012-12-03 18:19
jarryjsq
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:124
注 册:2011-7-11
收藏
得分:0 
这些问题调试一下基本上能找出来,学一下,有好处。
2012-12-03 21:22
a1028203709
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-10-22
收藏
得分:0 
来 自:安徽
 等 级:论坛游侠
 帖 子:71
专家分:131
注 册:2012-10-11        说的是对的谢谢你,也谢谢大家!
2012-12-04 22:01
a1028203709
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2012-10-22
收藏
得分:0 



来 自:江西财经大学
 等 级:侠之大者
 帖 子:182
专家分:494
注 册:2012-11-4
其实他的这个也对,嘿嘿,刚才没注意到
2012-12-04 22:06
快速回复:最大公约数的解?求教,到底哪儿错了!
数据加载中...
 
   



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

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