12,8的最大公约数和最小公倍数是分别是多少

来源:百度知道 编辑:UC知道 时间:2024/07/02 05:07:01
#include <stdio.h>
void main()
{
int p,r,n,m,temp;
printf("请输入两个整数:");
scanf("%d,%d",&n,&m);
if(n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=m)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数是:%d\n",n);
printf("它们的最小公倍数是:%d\n",p/n);
}

这个做的对吗? 我跟着数抄都不对的? 书上写的是
最大公约数是:4
最小公倍数是:24

而我上面的运行的是:
最大公约数是12
最小公倍数是:8

到底是哪个对啊?????

把m!=m改为 m!=0就可以了
#include <stdio.h>
void main()
{
int p,r,n,m,temp;
printf("请输入两个整数:");
scanf("%d%d",&n,&m); //两个%d%d中间没有逗号
if(n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数是:%d\n",n);
printf("它们的最小公倍数是:%d\n",p/n);
}

最大公约数是4 最小公倍数是24

你的 while()条件好像错了,我简单分析 应该是(m!=0)

m!=0