请帮忙看一下这个C程序哪里错了。

来源:百度知道 编辑:UC知道 时间:2024/05/01 23:58:01
要求:求m,n两个数的组最大公约数和最小公倍数。
#include <stdio.h>
int main()
{int m,n,i,j;
printf("输入m和n的值:");
scanf("%d%d",&m,&n);
if (m==n)
printf("最大公约数和最小公倍数均是:%d",m);
else {i=(m-n>0?m:n);
j=(m-n<0?m:n);}
while (m!=n)
{for(;j>1;j--)
{while(m%j==0&&n%j==0)
{printf("最大公约数是:%d",j);}
break;}
for(;;i++)
{while(i%m==0&&i%n==0)
{printf("最小公倍数是:%d",i);}
break;}
}
getchar();}
主要是那个break语句我自己也不明白。麻烦C高手不吝赐教。

#include <stdio.h>
int main()
{int m,n,i,j;
printf("输入m和n的值:");
scanf("%d%d",&m,&n);
if (m==n)
printf("最大公约数和最小公倍数均是:%d",m);
else {i=(m-n>0?m:n);
j=(m-n<0?m:n);}
printf("%d,j%d",i,j);

for(;j>=1;j--)
if(m%j==0&&n%j==0){ printf("最大公约数是:%d",j);break;}

for(;;i++)
if(i%m==0&&i%n==0) {printf("最小公倍数是:%d",i);break;}

//getchar();
}

节省时间!