| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3793 人关注过本帖
标题:用主调函数 求两个整数的最大公约数 最小公倍数 看看错在哪里?
只看楼主 加入收藏
zql5666641
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2010-3-8
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:14 
用主调函数 求两个整数的最大公约数 最小公倍数 看看错在哪里?
帮忙改一下
# include <stdio.h>
main()
{int max(int m,int n),min(int m,int n);
int x,y,a,m,n;
printf("Please enter m and n:");
scanf("%d,%d",&m,&n);
x=max(m,n);
y=min(m,n);
printf("最大公约数是:%d\n",x);
printf("最小公倍数是:%d\n",y);
}

int max(int m,int n)
{int t,r,g,a,max;
if(n>m) t=m;m=n;n=t;
r=m%n;
while(r!=0)
{m=n;
n=r;
r=m%n;
max=n;
}
return(max);
}
int min(int m,int n)
{int i,t;
    if(n>m) t=m;m=n;n=t;
for(i=m;;i++)
if(i%m==0&&i%n==0)
return(i);
}
搜索更多相关主题的帖子: 整数 函数 主调 最大公约数 最小公倍数 
2010-05-28 08:09
alweeq86
Rank: 2
等 级:论坛游民
帖 子:67
专家分:20
注 册:2008-9-14
收藏
得分:2 
程序代码:
# include <stdio.h>
int main()
{int max(int m,int n),min(int m,int n);
int x,y,m,n;
printf("Please enter m and n:");
scanf("%d,%d",&m,&n);
x=max(m,n);
y=min(m,n);
printf("最大公约数是:%d\n",x);
printf("最小公倍数是:%d\n",y);

return 0;
}

int max(int m,int n)
{int t,r,max=n;
if(n>m) {t=m;m=n;n=t;max=m;}//我用VS2008,如果不加上{}运行时会出现t未初始化的错误 下面也是一样
r=m%n;
while(r!=0)
{m=n;
n=r;
r=m%n;
max=n;
}
return(max);
}
int min(int m,int n)  //这样穷举太麻烦了 min(m,n)=m*n/max(m,n)
{int i,t;
if(n>m) {t=m;m=n;n=t;}
for(i=m;;i++)
if(i%m==0&&i%n==0)
return(i);
} 
不要申明的不用的变量
2010-05-28 09:08
实数虚数
Rank: 2
来 自:江西抚州
等 级:论坛游民
帖 子:27
专家分:37
注 册:2010-5-17
收藏
得分:2 
# include <stdio.h>
int main()
{int max(int m,int n),min(int m,int n);
int x,y,m,n;
printf("Please enter m and n:");
scanf("%d,%d",&m,&n);
x=max(m,n);
y=min(m,n);
printf("最大公约数是:%d\n",x);
printf("最小公倍数是:%d\n",y);

return 0;
}

int max(int m,int n)
{int t,r,max=n;
if(n>m) {t=m;m=n;n=t;max=m;}//因为if语句执行的是一个语句块,是复合语句,所以要用花括号
r=m%n;
while(r!=0)
{m=n;
n=r;
r=m%n;
//max=n;
}
max=n;//该语句应该放在这,


return(max);
}
int min(int m,int n)  
{int i,t;
if(n>m) {t=m;m=n;n=t;}
for(i=m;;i++)
if(i%m==0&&i%n==0)
return(i);
}
2010-05-28 12:16
zql5666641
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2010-3-8
收藏
得分:0 
2楼3楼的怎么都运行不出来
2010-05-28 12:57
zql5666641
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2010-3-8
收藏
得分:0 
2楼3楼的怎么都运行不出来
2010-05-28 13:00
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:2 
程序代码:
# include <stdio.h>
void main()    //加了void不知道是不是一定要加
{int max(int m,int n),min(int m,int n);
int x,y,/*a,*/m,n;        //变量a在这里没用可以删了
printf("Please enter m and n:");
scanf("%d,%d",&m,&n);
x=max(m,n);
y=min(m,n);
printf("最大公约数是:%d\n",x);
printf("最小公倍数是:%d\n",y);
}
int max(int m,int n)
{int t,r,/*g,a,*/max;        //变量g和a没用可以删了
if(n>m) {t=m;m=n;n=t;}    //加大括号
r=m%n;
while(r!=0)
{m=n;
n=r;
r=m%n;
max=n;
}
return(max);
}
int min(int m,int n)
{int i,t;
    if(n>m) {t=m;m=n;n=t;}    //加大括号
for(i=m;;i++)
{                               //加大括号
if(i%m==0&&i%n==0)
return(i);
}                              //加大括号
} 
运行时参数用逗号隔开
2010-05-28 17:57
sunmingchun
Rank: 4
来 自:安徽-滁州
等 级:业余侠客
帖 子:198
专家分:277
注 册:2010-4-2
收藏
得分:2 
#include <stdio.h>
void main()
{
    int max(int m,int n);
    int min(int m,int n);
    int x,y,m,n;
printf("Please enter m and n:");
scanf("%d,%d",&m,&n);
x=max(m,n);
y=min(m,n);
printf("最大公约数是:%d\n",x);
printf("最小公倍数是:%d\n",y);
}
int max(int m,int n)
{int t,r;
if(n>m) {t=m;m=n;n=t;}
r=m%n;
while(r!=0)
{m=n;
n=r;
r=m%n;
}
return(n);
}
int min(int m,int n)
{int i,t;
    if(n>m)
t=n;
else
t=m;
for(i=t;;i++)
if(i%m==0&&i%n==0)
break;
return i;
}
你试试吧 我现在没编译器。

[ 本帖最后由 sunmingchun 于 2010-5-29 17:08 编辑 ]
2010-05-28 19:06
陛下
Rank: 2
来 自:南宁
等 级:论坛游民
帖 子:62
专家分:90
注 册:2010-5-15
收藏
得分:2 
我的是这样:
程序代码:
#include"stdio.h"
int gcd(int a,int b);/*计算最大公约数函数说明*/
int lcm(int a,int b);/*计算最小公倍数函数定义*/
void main()
{
  int i,jk;
  puts("\n Please input 2 intteger");
  scanf("%d%d",&i,&j);
k=gcd(i,j);
printf("gcd {%d,%d}=%d\n",i,j,k);
printf("lcm{%d,%d}=&d\n",i,j,lcm(i,j));
}
int gcd(int a,int b)
{
  int temp,r;
  if(a<b)

 {
   temp=a;a=b;b=temp;

 }
r=a%b;
while(r!=0)
{
  a=b;b=r;
  r=a%b;
}
return b;
}
int lcm(int a,int b)
{
  return(a*b/gcd(a,b));
}
2010-05-29 02:00
zql5666641
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2010-3-8
收藏
得分:0 
回复 8楼 陛下
貌似也不太对
2010-05-29 07:17
陛下
Rank: 2
来 自:南宁
等 级:论坛游民
帖 子:62
专家分:90
注 册:2010-5-15
收藏
得分:0 
上面弄错了点
太晚 没注意
#include"stdio.h"
int gcd(int a,int b);/*计算最大公约数函数说明*/
int lcm(int a,int b);/*计算最小公倍数函数说明*/
void main()
{
  int i,j,k;
  puts("\n Please input 2 intteger");
  scanf("%d%d",&i,&j);
k=gcd(i,j);
printf("gcd {%d,%d}=%d\n",i,j,k);
printf("lcm{%d,%d}=&d\n",i,j,lcm(i,j));
}
int gcd(int a,int b)
{
  int temp,r;
  if(a<b)
{
   temp=a;a=b;b=temp;
}
r=a%b;
while(r!=0)
{
  a=b;b=r;
  r=a%b;
}
return b;
}
int lcm(int a,int b)
{
  return(a*b/gcd(a,b));
}
应该可以了
2010-05-29 10:25
快速回复:用主调函数 求两个整数的最大公约数 最小公倍数 看看错在哪里?
数据加载中...
 
   



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

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