求助C语言求最大公约数和最小公倍数

来源:百度知道 编辑:UC知道 时间:2024/05/07 14:07:47
我是这样编辑的,可是无法运行!
怎么回事?

#include<stdio.h>
int GongyueMax(int a,int b)
{int i,f;
for(i=1;i<=(a<b)?a:b;i++)
{if(a%i==0&&b%i==0)
f=i;}
return(f);}
int GongbeiMin(int c,int d)
{int j,g;
for(j=c*d;j>=(c>d)?c:d;j--)
{if(j%c==0&&j%d==0)
g=j;}
return(g);}
void main()
{int x,y,p,q;
sanf("%d,%d",&x,&y);
p=GongyueMax(x,y);
q=GongbeiMin(x,y);
printf("GongyueMax=%d,GongbeiMin=%d\n",p,q);
}

编译通过
#include<stdio.h>
int GongyueMax(int a,int b)
{int i,f;
for(i=1;i<=(a<b)?a:b;i++)
{if(a%i==0&&b%i==0){f=i;break;}}
return(f);}
int GongbeiMin(int c,int d)
{int j,g;
for(j=c*d;j>=(c>d)?c:d;j--)
{if(j%c==0&&j%d==0) {g=j;break;}}
return(g);}
void main()
{int x,y,p,q;
scanf("%d,%d",&x,&y);
p=GongyueMax(x,y);
q=GongbeiMin(x,y);
printf("GongyueMax=%d,GongbeiMin=%d\n",p,q);
}
for(i=1;i<=(a<b)?a:b;i++) 和for(j=c*d;j>=(c>d)?c:d;j--)
找到要的数后要跳出循环的

公约数的函数如下
int gongyue(int x,int y)
{
int r;
int max;
int min;
if(x>y)
{
max=x;
min=y;
}
else
{
max=y;
min=x;
}
r=max%min;
if(r==0)
{
return min;
}
else
{
max=min;
min=r;
gongyue(max,min);
}

}