C语言函数那章习题 求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一个函数根据求

2024-12-15 16:55:36
推荐回答(1个)
回答1:

#include
int Convention(int n,int m)
{
int r;
if(n<1||m<1)
return 0; //不存在最小公约数,返回值小于1皆可
while(n%m)
{
r=n%m;
n=m;
m=r;
}
return m;
}
int Multiple(int n,int m)
{
int c=Convention(n,m);
if(c>0)
return n*m/c;
return 0; //同公约数不存在最小公倍数
}
void main()
{
int n,m;
printf("请输入两个整数(大于0):\n");
scanf("%d %d",&n,&m);
while(getchar()!='\n');
if(Convention(n,m)>0)
{
printf("%d和%d的最小公约数是:%d\n",n,m,Convention(n,m));
printf("%d和%d的最小公倍数是:%d\n",n,m,Multiple(n,m));
}
}

#include
int con,mul; //最小公约数、公倍数
void Convention(int n,int m)
{
int r;
if(n<1||m<1)
{
con=0; //不存在最小公约数,返回值小于1皆可
return;
}
while(n%m)
{
r=n%m;
n=m;
m=r;
}
con=m;
}
void Multiple(int n,int m)
{
if(con>0)
mul=n*m/con;
else
mul=0; //同公约数不存在最小公倍数
}
void main()
{
int n,m;
printf("请输入两个整数(大于0):\n");
scanf("%d %d",&n,&m);
while(getchar()!='\n');
Convention(n,m);
Multiple(n,m);
if(con>0)
{
printf("%d和%d的最小公约数是:%d\n",n,m,con);
printf("%d和%d的最小公倍数是:%d\n",n,m,mul);
}
}