标题:一个C语言简单程序
取消只看楼主
今晚打老虎
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-6-16
 问题点数:0 回复次数:1 
一个C语言简单程序

输入两个正整数m和n,求其最大公约数和最小公倍数. 程序是这样的:

main()

{int p,r,n,m,temp;

scanf("%d,%d",&n,&m);

if(n<m)

{temp=n;

n=m;

m=temp;

}

p=n*m; /*先将n和m的乘积保存在p中,求最小公倍数时用 */

while(m!=0) /*求n和m的最大公约数*/

{r=n%m;

n=m;

m=r;

}

printf("最大公约数为:%d\n",n);

printf("最小公倍数为:%d\n",p/n);

}

这个程序我自己从机器上运行没问题,可不理解的地方是while语句中嵌套的内容把r定义为什么?

还有,如果我把n和m分别设成5和9的时候,嵌套语句(1)r=9%5求于的值为4,(2)n=m是把m的值赋予

n,n就为5,(3)m=r是把r的值4赋予m

然而最后输出最大公约数的值却输出n,我不理解这是为何~小弟头脑愚笨~还望各位不吝赐教!!谢谢

[此贴子已经被作者于2004-06-17 13:49:54编辑过]

搜索更多相关主题的帖子: C语言 
2004-06-17 13:16
今晚打老虎
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-6-16
得分:0 

谢谢斑猪哥哥提示~这些明朗多了!


愿上帝与菜鸟同在!阿门
2004-06-17 20:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-2594-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.766529 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved