c语言题目。。关于用函数求最大公约数和c语言最小公倍数算法的。谢谢解答

c程序设计第四版谭浩强
当前位置: >>
16:49:25&&分类: c程序设计第四版谭浩强课后答案&&参与: 人
&写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。以下是此题的【c源代码】,方法1:用两个函数hcf和lcd分别求最大公约数。在主函数中输入两个整数u和v,u ,并传送给函数hcf,求出的最大公约数返回主函数赋给整型变量h,然后再把h和两个整数u,v 一起作为实参传递给函数lcd,以求出最小倍数,返回到主函数赋给整型变量l。输出最大公约数和最小公倍数。【c源程序1】#include &stdio.h&int main()&{int hcf(int,int);& int lcd(int,int,int); & int u,v,h,l;& scanf(&%d,%d&,&u,&v);& h=hcf(u,v);& printf(&H.C.F=%d\n&,h);& l=lcd(u,v,h);& printf(&L.C.D=%d\n&,l);& return 0;&}int hcf(int u,int v){int t,r;&if (v&u)&& {t=u;u=v;v=t;}&while ((r=u%v)!=0)&& {u=v;&&& v=r;}&return(v);}int lcd(int u,int v,int h)& {&& return(u*v/h);& }&方法2:用全局变量的方法。全局变量Hcf和Lcd分别代表最大公约数和最小公倍数。用两个函数分别求最大公约数,但其值不由函数带回,而是赋给全局变量Hcf和Lcd。在主函数中输出他们的值。【c源程序2】#include &stdio.h&int Hcf,Lint main()&{void hcf(int,int);& void lcd(int,int); & int u,v;& scanf(&%d,%d&,&u,&v);& hcf(u,v);& lcd(u,v);& printf(&H.C.F=%d\n&,Hcf);& printf(&L.C.D=%d\n&,Lcd);& return 0;&}void hcf(int u,int v){int t,r;&if (v&u)&& {t=u;u=v;v=t;}&while ((r=u%v)!=0)&& {u=v;&&& v=r;&& }&Hcf=v;}void lcd(int u,int v)& {&& Lcd=u*v/H& }&
本文链接:
本站文章搜索:
相关文章 14:25:23 14:21:53 14:18:53 13:21:19 8:7:17 7:57:57用C语言编写求两个函数的最大公约数与最小公倍数_百度知道
用C语言编写求两个函数的最大公约数与最小公倍数
要求,用全局变量的方法,分别用两个函数求最大公约数与最小公倍数,但其值不由函数带回.将最大公约数与最小公约数都设为全局变量,在主函数中输出他们的值
我有更好的答案
#include&stdio.h&#include&math.h&int&fun_y(int,int);int&fun_b(int,int);main(){&int&a,b,gy,&printf(&输入两个整数:\n&);&scanf(&%d%d&,&a,&b);&gy=fun_y(a,b);&gb=fun_b(a,b);&printf(&最大公约数是:%d\n最小公倍数是:%d\n&,gy,gb);}int&fun_y(int&x,int&y){&int&z,i;&if(x&y)&&z=sqrt(y);&else&&&z=sqrt(x);&for(i=z;i&=1;i--)&{&&if(x%i==0&&y%i==0)&&&&}&return&i;}int&fun_b(int&x,int&y){&int&z,i;&&z=x*y;&for(i=x;i&=z;i++)&{&&if(i%x==0&&i%y==0)&&&&}&return&i;}  以下是运行结果:  
#include&stdafx.h&#include&iostream.h&void dayue(int a,int b);void main(){
int a,b;cout&&&input a and b:&; cin&&a&&b; dayue(a,b); cout&&&最大公约数是&&&m&&}void dayue(int a,int b){m=a&b?a:b;for(;m&2;m--)if(a%m+b%m==0)}
本回答被提问者采纳
#include &stdio.h&int max,void Func(int x1,int x2){ int m_biger,m_smler, if(x1&x2) {
m_biger=x1;
m_smler=x2; } else {
m_biger=x2;
m_smler=x1; } while(temp=m_biger%m_smler) {
m_biger=m_
m_smler= } max=m_ min=x1*x2/}void main(){ int n1,n2; printf(&Please Input 2 number for compute:\nX1:\t&); scanf(&%d&,&n1); printf(&X2:\t&); scanf(&%d&,&n2); Func(n1,n2); printf(&The greatest common denominator is:%d\n&,max); printf(&The lowest common multiple is:%d\n&,min);}
为您推荐:
其他类似问题
最大公约数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
求C语言程序:求两个整数的最大公约数和最小公倍数.用一个函数求最大公约数,用另一个函数根据求出的最大公约数求最小公倍数.要用函数表达,
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
#includeint main(){int m,n,t,i;scanf("%d%d",&m,&n);if(m>n){t=n;n=m;m=t;}for(i=m;i>=2;i--)if(m%i==0&&n%i==0)printf("%d,%d\n",i,m*n/i);return 0;}
为您推荐:
其他类似问题
扫描下载二维码编程,求最大公约数和最小公倍数_百度知道
编程,求最大公约数和最小公倍数
要求用C语言来完成,谢谢了~
我有更好的答案
#include &stdio.h&main(){
int m,n,i;
scanf(&%d %d&,&m,&n);
for(i=p;i&=1;i--)
if(m%i==0 && n%i==0)
printf(&max=%d,min=%d&,max,min);}
采纳率:58%
最大公约数用辗转求余计算,a,b输入,最后跳出循环的a就是最大公约数while(b!=0)
}最小公倍数:A * B / 最大公约数
#include &stdio.h&int GCD(int m, int n){ int r = m % while (r != 0) {
r = m % }}int main(){ int m, printf(&输入两个正整数: &); scanf(&%d %d&, &m, &n); int r = GCD(m, n); printf(&最大公约数: %d\n&, r); printf(&最小公倍数: %d\n&, m*n/r); return 0;}//会了么?
#include &stdio.h&int zdgys(int a,int b);int zxgbs(int a,int b);void main(){ int a,b,c,d; printf(&输入两个正整数:&); scanf(&%d%d&,&a,&b); c=zdgys(a,b); d=zxgbs(a,b); printf(&最大公约数%d\n最小公倍数%d\n&,c,d);}int zdgys(int a,int b){ int z,i; if(a&b) z=b; else z=a; for(i=z;i&0;i--)
if(a%i==0&&b%i==0)
return (i);}int zxgbs(int a,int b){ int k,j; if(a&b) k=a; else k=b; for(j=k;j&0;j++)
if(j%a==0&&j%b==0)
return (j);}
// 最大公约数int gcd(int m, int n){ return n == 0 ? m : gcd(n, m % n) ;}// 最小公倍数int lcm(int m, int n){ return m * n / gcd(m, n) ;}
//---------------------------------------------------------------------------#include &stdio.h&int gcd(int a,int b){ if (!b) else return gcd(b,a%b);}int main(void){ int a,b,G scanf(&%d%d&,&a,&b); printf(&GCD:%d\n&,Gcd=gcd(a,b)); printf(&L.C.M:%ld\n&,a*b/Gcd); return 0;}//---------------------------------------------------------------------------
其他4条回答
为您推荐:
其他类似问题
最大公约数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 c语言求最小公倍数 的文章

 

随机推荐