| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:错误在哪里呀
只看楼主 加入收藏
zhao9302
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-5-10
收藏
 问题点数:0 回复次数:2 
错误在哪里呀

今天重新写了个最简单的求最大公约数 最小公倍数的程序
我觉得根本没错 但为什么最后的结果不正确?(用 GRI 代表最大公约数,LRT 代表最小公倍数 【具体的我不记得 姑且这么代替吧】)

#include<stdio.h>
main()
{int m,n,temp1,temp2,temp3,Lrt;
printf("Please input the two interge:\n");
printf("m=");
scanf("%d",&m);
printf("n=");
scanf("%d",&n);

temp2=m;
temp3=n;

m=(m>n?m:n);
n=(m>n?n:m);
while(1)
{temp1=m%n;
if(temp1==0) break;
m=n;
n=temp1;
}
printf("The GRI is %d\t\t",n);

Lrt=temp2*temp3/n;
printf("The LRT is %d",Lrt);

}

搜索更多相关主题的帖子: 最小公倍数 include 公约数 
2007-08-12 00:45
ConZhang
Rank: 1
来 自:北京
等 级:新手上路
帖 子:282
专家分:0
注 册:2007-8-7
收藏
得分:0 
m=(m>n?m:n);
n=(m>n?n:m);
这两句错了,不能实现当m<n的时候,交换m,n
2007-08-12 08:52
lijy520
Rank: 2
等 级:论坛游民
帖 子:119
专家分:42
注 册:2007-8-8
收藏
得分:0 
以下是引用zhao9302在2007-8-12 0:45:18的发言:

今天重新写了个最简单的求最大公约数 最小公倍数的程序
我觉得根本没错 但为什么最后的结果不正确?(用 GRI 代表最大公约数,LRT 代表最小公倍数 【具体的我不记得 姑且这么代替吧】)

#include<stdio.h>
main()
{int m,n,temp1,temp2,temp3,Lrt;
printf("Please input the two interge:\n");
printf("m=");
scanf("%d",&m);
printf("n=");
scanf("%d",&n);

temp2=m;
temp3=n;

m=(m>n?m:n);
n=(m>n?n:m);
while(1)
{temp1=m%n;
if(temp1==0) break;
m=n;
n=temp1;
}
printf("The GRI is %d\t\t",n);

Lrt=temp2*temp3/n;
printf("The LRT is %d",Lrt);

}

俩句不对,上面的m已经被你交换过了
下面的n就不能交换,到下面一句时,()中的m已经不是原来的那个m


2007-08-12 10:05
快速回复:错误在哪里呀
数据加载中...
 
   



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

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