C语言,编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回

作者&投稿:豆京 (若有异议请与网页底部的电邮联系)
C语言函数编写,求两个整数的最大公约数和最小公倍数~

编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:
#include
#include
int fun_gy(int,int); //声明最大公约数函数
int fun_gb(int,int); //声明最小公倍数函数
main()
{
int a,b,gy,gb;
printf("输入两个整数:
");
scanf("%d%d",&a,&b);
gy=fun_gy(a,b); //调用最大公约数函数
gb=fun_gb(a,b); //调用最小公倍数函数
printf("最大公约数是:%d
最小公倍数是:%d
",gy,gb);
}
int fun_gy(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)
break;
}
return i;
}int fun_gb(int x,int y)
{
int z,i;
z=x*y;
for(i=x;i<=z;i++)
{
if(i%x==0&&i%y==0)
break;
}
return i;
}程序运行结果:

扩展资料:
这里涉及到了最大公约数和最小公倍数的计算方法:
我们知道两个整数的最小公倍数等于他们的乘积除以他们的最大公约数。所以关键还是最大公约数的计算。
辗转相除法(求最大公约数):
假设求a,b的最大公约数,则:
(1)a除以b取余得c,若c=0,则b即为两数的最大公约数,输出,结束。
(2)若c != 0,则将b赋给a,c赋给b再返回上一步操作,继续执行。
例如,求30和98的最大公约数,过程如下:
90%30 = 8;
30%8 = 6;
8%6 = 2;
6%2 = 0;
所以最大公约数为2。

#include<stdio.h>

# include <stdio.h>
int gcd(int x,int y)//最大公约数
{
if (y==0)
return x;
else
return gcd(y,x%y);
}
int lcd (int x,int y,int z)//最小公倍数
{
return x*y/z;
}
int main()
{
int a,b,c;
scanf("%d%d",&b,&c);
int d=gcd(b,c);
printf("%d %d",d,lcd(b,c,d));
return 0;
}

#include<stdio.h>
void main( )
{
int gongyueshu( int a, int b );
int gongbeishu( int a, int b );
int a, b, c, d;
printf("please input two integer numbers:");
scanf("%d%d", &a, &b);
c=gongyueshu(a, b);
d=gongbeishu(a, b);
printf("gongyueshu is %d\n gongbeishu is %d",c,d);
}
int gongyueshu( int a, int b )
{
int t=a<b?a:b;
while(a%t||b%t)
{
t--;
}
return t;
}
int gongbeishu( int a, int b )
{
int t=a<b?b:a;
while(t%a||t%b)
{
t++;
}
return t;
}

#include<stdio.h>
void main()
{int a,b,num1,num2,temp;
scanf("%d %d",&num1,&num2);
if(num1<num2){temp=num1;num1=num2;num2=temp;}
a=num1;b=num2;
while(b!=0)
{temp=a%b;
a=b;
b=temp;}
printf("%d\n",a);
printf("%d\n",num1*num2/a);
}


C语言编写实现两个浮点函数交换。在主函数中输入输出两个浮点数。
include <stdio.h> void swap(float& a, float& b){ float t = a;a = b;b = t;} void main(){ float a,b;printf("请输入a,b的值:\\n");scanf("%f%f",&a,&b);printf("a = %f,b = %f\\n",a,b);swap(a,b);printf("交换后:a = %f,b = %f\\n",a,b);} ...

C语言编写程序计算矩形的面积和周长,用两个函数分别计算面积和周长...
include <stdio.h> double area(double x,double y){ return x*y;} double girth(double x,double y){ return 2*(x+y);} int main(){ double a=2,b=3;printf("面积:%f,周长:%f\\n",area(a,b),girth(a,b));return 0;} ...

高手进!C语言编程:定义两个函数,功能是分别求出某个整数的平方值和立方...
int pingfang(int i){ int m;m=i*i;return m;} int lifang(int j){ int n;n=j*j*j;return n;}

c语言,编写程序计算矩形的面积和周长,用两个函数分别计算面积和周长_百 ...
include<stdio.h>double zc(double x, double y){ return 2*(x+y);}double mj(double x,double y){ return x*y;}int main(){ double x,y; scanf("%lf%lf",&x,&y); printf("%lf %lf",zc(x,y),mj(x,y)); getchar(); getchar(); return 0; ...

编写函数:输入两个正整数m,n,求它们的最大公约数和最小公倍数
include<stdio.h> include<math.h> int fun_y(int,int);int fun_b(int,int);main(){ int a,b,gy,gb;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,...

在C语言里,printf怎么输出2个变量?
在C语言中,输出两个变量相当直接,只需要在printf函数中正确使用格式控制和变量。%d用于表示整数输出,当你需要将两个变量连接输出时,只需在格式字符串中用逗号分隔对应的变量名即可。例如,如果你想输出变量a和b的和,以及a、b和c的和,代码会像这样:在C语言中,你可以这样编写代码:int a = 10...

C语言 编写函数,求两个数的平方,立方和及平方,立方差
\/\/编写函数 求两个数的平方,立方和及平方,立方差#include <stdio.h>int pingfang(int x){return x*x;}int lifang(int x){return x*x*x;}int pingfangcha(int x,int y){return pingfang(x) - pingfang(y);}int lifangcha(int x,int y){return lifang(x) - lifang(y);}int main...

求一个用c语言编写的,编写函数计算两个整数的所有公约数的编程_百度...
好的,下面是一个用C语言编写的计算两个整数的所有公约数的函数:include <stdio.h> include <stdlib.h> int gcd(int a, int b) { int temp;while (b != 0) { temp = a % b;a = b;b = temp;} return a;} void common_divisors(int a, int b) { int i, max;max = gcd(...

在c语言中,把两个函数放在两个程序文件中,怎样作为两个文件进行编译,连 ...
不知道你用的是什么编译器,如果用的是VC的话,可以尝试下我的做法:创建两个源代码文件:1.cpp和2.cpp 1.cpp中内容:include<stdio.h> include"2.cpp"\/*采用包含命令调用2.cpp中的函数*\/ int max(int x,int y){ return x>y?x:y;} int main(){ int a,b,m,n;a=10;b=30;m=max...

用汇编语言编写:由键盘输入两个整数val1和val2,输出稍大于val1且是val...
楼主,你问的简单,“就编写一个这样的程序”,这个程序拿C语言编肯定非常简单,拿汇编可没那么容易啊。以下是程序,简单说明几点:1. 由于输入、输出的都是字符,所以用了两个函数。Atoi16是把输入的字符转为正整数,I16toa 是把整数转成字符串。2. 调用Atoi16时,要配好si和cl两个寄存器。si...

合肥市15618645244: C语言,编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回 -
郎行太子: # include <stdio.h> int gcd(int x,int y)//最大公约数 {if (y==0)return x;elsereturn gcd(y,x%y); } int lcd (int x,int y,int z)//最小公倍数 {return x*y/z; } int main() {int a,b,c;scanf("%d%d",&b,&c);int d=gcd(b,c);printf("%d %d",d,lcd(b,c,d));return 0; }

合肥市15618645244: c语言编程写两个函数,分别求两个正数的最大公约数和最小公倍数 -
郎行太子: #include <stdio.h> //求a和b最大公约数: int yue(int a,int b) {int k=1;int t=a>b?b:a;//a大取b,否则取afor(int i=1;i<=t;i++){if((a%i==0)&&(b%i==0)) k=i;else continue;}return k;//返回最大公约数 } //求a和b的最小公倍数,参数c传递的是a和b...

合肥市15618645244: 写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果. -
郎行太子:[答案] 你试着将最大公约数的while循环换成下面的: while(a!=0) /* 余数不为0,继续相除,直到余数为0 */ { r=b%a; b=a; a=r; } 那么应该是可以正确求得结果的,此法为:辗转相除法. 不懂请追问,解决请【采纳为最佳答案】,答题不易,谢谢支持!

合肥市15618645244: 编写两个函数,分别求两个正数的最大公约数和最小公倍数,在主函数中输入两个数,然后调用这两个函数计算 -
郎行太子: int HCF(int x,int y) //定义最大公约数函数{ int i,change; if(x>y) //保证x是最小数 {change=y;x=change;y=x;}for(i=x;i>=1;i--) if(x%i==0&&y%i==0) break;return i;}int SCM(int x,int y) //定义最小公倍数函数{ int i,change;if(x>y){change=y;x=change;y=x;}for(i=...

合肥市15618645244: 用c语言分别设计求两个正整数的最大公约数、最小公倍数的函数.主函数输入任意的两个整数, -
郎行太子: 展开全部#include void main( ) { int gongyueshu( int a, int b ); int gongbeishu( int a, int b ); int a, b, c, d; printf("please input two integer numbers:"); scanf("%d%d", &a, &b); c=gongyueshu(a, b); d=gongbeishu(a, b); printf("gongyueshu is %d\n ...

合肥市15618645244: C语言编写两个函数,分别求其最大公约数和最小公倍数.并在主函数中输入任意两个正整数m和n,调用前两个函 -
郎行太子: #include void haha(); int main() { int m,n;int i,j,k,l;int yueshu,beishu;printf("输入两个整数,\n");scanf("%d%",&m);scanf("%d%",&n);if(m>n)haha(m,n)elsehaha(n,m)beishu=m*n/yueshu;printf("%d与%d最大公约数%d",m,n,...

合肥市15618645244: c语言编程:写一个函数计算两个正整数的最小公倍数,在主函数中用scanf输入m,n两个正整数,调用函数后,打印这两个正整数的最小公倍数
郎行太子: #include "stdio.h" int fun(int m,int n) { int a,b,c; a=m; b=n; c=a%b; while(c!=0) {a=b;b=c;c=a%b;} return m*n/b; } void main() { int m,n,i,t; printf("Enter m,n :\n"); scanf("%d,%d",&m,&n); if(m>n) { t=m; m=n; n=t; } printf("The Lowest Common Multiple Of %d and %d is %d\n",m,n,fun(m,n)); }

合肥市15618645244: 2写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用函数,并输出结果两个正数由键盘输入 -
郎行太子: 以C+++为例,假设你所说的两个正数是整数,如下:# include using namespace std;int gcd(i...

合肥市15618645244: 200分求解c语言入门题 -
郎行太子: 1、#include main() { int m,n,max,min,k; printf("输入两个正整数:"); scanf("%d%d",&m,&n); max=m>n?m:n; min=mwhile(true) { k=(max%min); if(k==0) { break; } max=min; min=k; } printf("最大公约数:%d\n",min); printf("最小公...

合肥市15618645244: c语言程序题.编写函数,以两个正整数为参数,如果这两个数是友好的,返回true,否则返回false. -
郎行太子: int foo(int a) { int i,sum=1; for(i=2;i if(a%i==0) sum+=i; return sum; } int foooo(int a, int b) { if(a==foo(b) && b==foo(a)) return 1; else return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网