求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍

用两种方法求
① 不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输入,并传送给函数hcf,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数lcd,求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。
② 用全局变量的方法。用两个全局变量分别代表最大公约数和最小公倍数。用两个函数分别求最大公约数和最小公倍数,但其值不由函数带回,而是赋给全局变量。在主函数 中输出它们的值。

第1个回答  推荐于2016-12-02

#include<stdio.h>
int hcf(int a,int b)
{
int c;
while(b){c=b;b=a%b;a=c;}
return a;
}
int lcd(int a,int b,int c)
{return (b*c/a);}
void main()
{
int a,b,c,d;
scanf("%d%d",&a,&b);
d=lcd(c=hcf(a,b),a,b);
printf("%d,%d\n",c,d);
}


#include<stdio.h>
int max,min;
void hcf(int a,int b)
{
int c;
while(b){c=b;b=a%b;a=c;}
min=a;
}

void lcd(int a,int b,int c)
{max=b*c/a;}

void main()
{
int a,b;
scanf("%d%d",&a,&b);
hcf(a,b);
lcd(min,a,b);
printf("%d,%d\n",max,min);
}本回答被提问者采纳
相似回答