c语音……求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数.用另一函数根据求出的最大公约

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

第1个回答  推荐于2017-07-12

(1):

#include<stdio.h>
int hcf(int a,int b){
int c=(a<=b)?a:b;
int d=(a>b)?a:b;
int m;
for(int i=1;i<=a;i++){
if(a%i==0&&b%i==0)m=i;
}
return m;
}
int lcd(int a,int b,int m){
return a*b/m;
}

int main(){
int a,b;
printf("Please input an integer:");
scanf("%d",&a);
printf("Please input an integer:");
scanf("%d",&b);
int m=hcf(a,b);
int M=lcd(a,b,m);
printf("hcf:%d\nlcd:%d\n",m,M);
    system("pause");
    return 0;
}

(2):

#include<stdio.h>

int m,M;

void hcf(int a,int b){
int c=(a<=b)?a:b;
int d=(a>b)?a:b;
for(int i=1;i<=a;i++){
if(a%i==0&&b%i==0)m=i;
}
return;
}
void lcd(int a,int b){
M=a*b/m;
return;
}

int main(){
int a,b;
printf("Please input an integer:");
scanf("%d",&a);
printf("Please input an integer:");
scanf("%d",&b);
hcf(a,b);
lcd(a,b);
printf("hcf:%d\nlcd:%d\n",m,M);
    system("pause");
    return 0;
}

本回答被网友采纳
第2个回答  2017-07-12
#include
int main()
{
int m,n,t,i;
scanf("%d%d",&m,&n);
if(m>n)
{
t=n;
n=m;
m=t;
}
for(i=m;i>=2;i--)
if(m%i==0&&n%i==0)
printf("%d,%d\n",i,m*n/i);
return 0;
}
第3个回答  2016-01-21
这和c语言没什么关系
相似回答