怎么会不会显示结果呢

来源:百度知道 编辑:UC知道 时间:2024/05/13 23:26:24
输入两个正整数m和n,求它们的最大公约数和最小公倍数。(习题6.1)

#include<stdio.h>
void main()
{
int m,n,p,q,t,x,y;
scanf("%d %d",&m,&n);
x=m;
y=n;
if(m<n)
{
p=m;
m=n;
n=p;
}
do
{
q=m%n;
m=n;
n=q;
}
while(q!=0);
t=x*y/n;

printf("%d %d",n,t);
getch();

}

#include<stdio.h>
void main()
{
int m,n,p,q,t,x,y;
scanf("%d %d",&m,&n);
x=m;
y=n;
if(m<n)
{
p=m;
m=n;
n=p;
}
do
{
q=m%n;
m=n;
n=q;
printf("rrrrrrrrr");//while的条件永远为真,进入死循环了,加输出语句测试了下
}
while(q!=0);
t=x*y/n;

printf("%d %d",n,t);
//getch();

}

给个做参考
求a和b最大公约数:
int m(int a,int b)
{
int k=1;
t=a>b?b:a;//a大取b,否则取a
for(int i=1;i<=t;i++)
{
if((a%i==0)&&(b%i==0)) k=i;
else continue;
}
return k;//返回最大公约数
}

求a和b的最小公倍数//k是a和b的最大公约数
int n(int a,int b,int c)
{
return (a*b)/c;
}