写两个函数,分别求两个整数的最大公约数和最小公倍数 C语言

2016-06-17 16:49:25  分类: c程序设计第四版谭浩强课后答案  参与:

 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

以下是此题的【c源代码】,需要【c++源代码】请点击进入

方法1:用两个函数hcf和lcd分别求最大公约数。在主函数中输入两个整数u和v,u ,并传送给函数hcf,求出的最大公约数返回主函数赋给整型变量h,然后再把h和两个整数u,v 一起作为实参传递给函数lcd,以求出最小倍数,返回到主函数赋给整型变量l。输出最大公约数和最小公倍数。
【c源程序1】
#include <stdio.h>
int main()
 {int hcf(int,int);
  int lcd(int,int,int);
  int u,v,h,l;
  scanf("%d,%d",&u,&v);
  h=hcf(u,v);
  printf("H.C.F=%d\n",h);
  l=lcd(u,v,h);
  printf("L.C.D=%d\n",l);
  return 0;
 }

int hcf(int u,int v)
{int t,r;
 if (v>u)
   {t=u;u=v;v=t;}
 while ((r=u%v)!=0)
   {u=v;
    v=r;}
 return(v);
}

int lcd(int u,int v,int h)
  {
   return(u*v/h);
  }

 
方法2:用全局变量的方法。全局变量Hcf和Lcd分别代表最大公约数和最小公倍数。用两个函数分别求最大公约数,但其值不由函数带回,而是赋给全局变量Hcf和Lcd。在主函数中输出他们的值。
【c源程序2】

#include <stdio.h>
int Hcf,Lcd;
int main()
 {void hcf(int,int);
  void lcd(int,int);
  int u,v;
  scanf("%d,%d",&u,&v);
  hcf(u,v);
  lcd(u,v);
  printf("H.C.F=%d\n",Hcf);
  printf("L.C.D=%d\n",Lcd);
  return 0;
 }

void hcf(int u,int v)
{int t,r;
 if (v>u)
   {t=u;u=v;v=t;}
 while ((r=u%v)!=0)
   {u=v;
    v=r;
   }
 Hcf=v;
}

void lcd(int u,int v)
  {
   Lcd=u*v/Hcf;
  }

 

来源:c程序设计第四版谭浩强课后答案

本文链接:http://www.wb98.com/c/post/tanhaoqiang_7.1.html

本站文章搜索:

<< 上一篇下一篇 >>

搜索

网站分类

Tags列表

赞助商链接