写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。
以下是此题的【c源代码】,需要【c++源代码】请点击进入
方法1:用两个函数hcf和lcd分别求最大公约数。在主函数中输入两个整数u和v,u ,并传送给函数hcf,求出的最大公约数返回主函数赋给整型变量h,然后再把h和两个整数u,v 一起作为实参传递给函数lcd,以求出最小倍数,返回到主函数赋给整型变量l。输出最大公约数和最小公倍数。
【c源程序1】
#include
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
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;
}