C语言设计求最大公约数最小公倍数问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:59:46
帮忙看看那里错啦,能运行,但是不出结果啊
#include<stdio.h>
int maxgy(int a,int b);
int mingb(int a,int b);
main()
{
int a,b;
printf("intput two numbers:");
scanf("%d%d",&a,&b);
printf("the result is:",maxgy(a,b),mingb(a,b));
}
int maxgy(int a,int b)
{
int m,n,x=m%n,t,i,y=1;
for(i=0;x!=0;i++){
y=m;
x=m%n;
t=n;
n=x;
m=t;}
y=y*m;
return m;
}
int mingb(int a,int b)
{
int m,n,x=m%n,t,i,y=1;
for(i=0;x!=0;i++){
y=m;
x=m%n;
t=n;
n=x;
m=t;}
y=y*m;
return y;
}

//刚写的简化程序 希望对您有所help
#include <stdio.h>
main()
{
int x,y,a,b,c;
printf("input two numbers:");
scanf("%d%d",&x,&y);
a=x>y?x:y;
b=x>y?y:x;
while(b)
{
c=a%b;
a=b;
b=c;
}
printf("最大公约数为%d.\n",a);
printf("最小公倍数为%d.\n",x*y/a);
}

printf("the result is:",maxgy(a,b),mingb(a,b));
你都没加%d,怎么输出

而且求最大公约数的算法也有问题,你上网随便找个辗转相除法的代码看看.
最小公倍数可以用两数的积除以最大公约数得到

printf("the result is:",maxgy(a,b),mingb(a,b));
你都没加%d,怎么输出