最大公约数和最小公倍数的程序设计!看下怎么错了!急急急!

来源:百度知道 编辑:UC知道 时间:2024/06/03 18:45:20
#include<stdio.h>
main()
{
int m,n,t,r;
printf("Enter m and n:\n");
scanf("%d%d",&m,&n);
if(m<n){
t=m;
m=n;
n=t;
}
while((r=m%n)!=0){
m=n;
n=r;
}
printf("gys is %d",n);
printf("gbs is %d",m*n/r);
getch();
}

#include <stdio.h>

main()
{
int a, b, r, m, t;

printf("请输入两个数:\n");
scanf("%d\n%d",&a,&b);
t = a * b;

if(a > b && b > 0)
{
while (b != 0) {
r = a % b;
a = b;
b = r;
}
m = t / a;
printf("最大公约数是:%d\n最小公倍数是:%d\n", a, m);
}else
printf("请重新输入");
system("pause");
return 0;
}

补充:
可以把我程序中的这段
===================
}else
printf("请重新输入");
===================
改成你程序中的这段(记得改变量名称)
=======================
if(m<n){
t=m;
m=n;
n=t;
}
=======================

逻辑错误啦!循环变量也错!

int m,n,t,r,a;
/*……中间省略*/
a=m*n; /*下面的m和n要在这里先赋值给a,不然m、n值会因为循环赋值后改变*/
while(
m !1=0)
{
r=n%m;
n=m;