当前位置: 代码迷 >> C语言 >> [求助]问题出在哪呢
  详细解决方案

[求助]问题出在哪呢

热度:47   发布时间:2007-10-01 14:21:07.0
[求助]问题出在哪呢

# include "stdio.h"
void main()

{int p,r,n,m,temp;
printf("请输入2个正整数n,m:");
scanf("%d,%d",&n,&m);
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);
}

输入12,8
输出他们的最大公约数是:4
他们的最小公倍数是:24

问题是出在这
{r=n%m;
n=m;
m=r;
}


此处应该是n=8
m=4
不知道对不对,,不对的话解释下。。。
如果对的那话那么
printf("他们的最大公约数是:%d\n",n);
应该是输出输出他们的最大公约数是:8
????
到底怎么回事


----------------解决方案--------------------------------------------------------
如果对的那话那么
printf("他们的最大公约数是:%d\n",n);
应该是输出输出他们的最大公约数是:8
????
到底怎么回事

???

输入12,8
输出他们的最大公约数是:4
他们的最小公倍数是:24
你认为最大公约数是多少啊?
----------------解决方案--------------------------------------------------------

就是说
问题是出在这
{r=n%m;
n=m;
m=r;
}


此处应该是n=8
m=4


我这样理解对不对啊~~~~~


----------------解决方案--------------------------------------------------------
然后printf("他们的最大公约数是:%d\n",n);
这条语句不是输出 n???
n不是等于8????
----------------解决方案--------------------------------------------------------

不对
while(m!=0)

{r=n%m;
n=m;
m=r;
}

12%8......4
n=8
m=4

8%4.......0
n=4
m=0


----------------解决方案--------------------------------------------------------
明白了。。。
循环语句没掌握好。。。我只循环了1次。。
谢谢啊
楼上的有QQ没,。。。以后遇到问题好问你
呵~~~
----------------解决方案--------------------------------------------------------

请教不敢,一起进步


----------------解决方案--------------------------------------------------------


----------------解决方案--------------------------------------------------------
  相关解决方案