c语言编写两个自定义函数,分别实现求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数 请编写两个自定义函数,分别实现求两个整数的最大公约数和最小公...
#include<stdio.h>
#include<stdlib.h>
int HCF(int x,int y);//定义最大公约数函数
int LCM(int p,int q);//定义最小公倍数函数
int main()
{
int a,b,hcf,lcm;
scanf("%d%d",&a,&b);//输入两个整数
hcf=HCF(a,b);//调用最大公约数函数
lcm=LCM(a,b);//调用最小公倍数函数
printf("HCF is%d LCM is%d
",hcf,lcm);//输出最大公约数和最小公倍数
system("pause");
return 0;
}
int sum;//定义外部变量sum
//最大公约数函数
int HCF(int x,int y)
{
int i,k,m,n;
sum=1;
k=x>y?y:x;
i=2;
while(i<=k){
m=x%i;
n=y%i;
if(m==0&&n==0){
sum*=i;
x/=i;
y/=i;
i=2;
}
else
i++;
}
return sum;
}
//最小公倍数函数
int LCM(int p,int q)
{
int lc;
lc=p*q/sum;
return lc;
}
扩展资料:
用法:
1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。
格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。
要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。
2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。
#include "stdio.h"
int mygcd(int a,int b){
int r;
while(b){
r=a%b;
a=b;
b=r;
}
return a;
}
int mylcm(int x,int y){
return x/mygcd(x,y)*y;
}
int main(int argv,char *argc[]){
int m,n;
printf("Input m & n(int m,n>0)...
");
if(scanf("%d%d",&m,&n)!=2 || m<1 || n<1){
printf("Input error, exit...
");
return 0;
}
printf("
The GCD of %d & %d is %d
",m,n,mygcd(m,n));
printf("The LCM of %d & %d is %d
",m,n,mylcm(m,n));
return 0;
}
运行样例:
#include<stdio.h>
//求最大公约数函数
int gcd(int a,int b)
{
int temp,r;
int v;
if(a<b)
{temp=a; a=b; b=temp;} //将大数放在a中,小数放在b
v=a*b;
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);
}
int main()
{
int x,y;
scanf("%d%d",&x,&y);
if(x<=0 || y<=0){
printf("输入有误!
");
return -1;
}
printf("%d 与 %d的最大公约数为: %d
",x,y,gcd(x,y));
printf("%d 与 %d的最小公倍数为: %d
",x,y,lcm(x,y));
return 0;
}
//示例运行结果
F:\c_work>a.exe
24 36
24 与 36的最大公约数为: 12
24 与 36的最小公倍数为: 72
F:\c_work>a.exe
1 8
1 与 8的最大公约数为: 1
1 与 8的最小公倍数为: 8
C语言用两个函数求两数最大公约数和最小公倍数~
可以给出一定的思路给你:
18, 36
最大公因数 = 18
最小公倍数 = 36
18 = 2 * 9 = 2 * 3 * 3 = 2 * 3^2
36 = 2 * 18 = 2 * 2 * 9 = 2 * 2 * 3 * 3 = 2^2 * 3^2
最大公因数 = 18 = 2 * 3 * 3 = 2 * 3^2
最小公倍数 = 36 = 2 * 2 * 3 * 3 = 2^2 * 3^2
#include /*请编写两个自定义函数,分别实现求两个整数的最大公约数和最小公倍数,并用主函数调*/int GongYin(int a,int b) //辗转相除法求最大公约数,有问题请自行度娘之{int temp;if(a<b) //保证a比b大,方便下面进行运算{temp=a;a=b;b=temp;}if(a%b==0)return b;a=a-b;if(a==1)return a;elsereturn GongYin(b,a);}int GongBei(int a,int b)//利用 a,b最小公倍数=a*b/最大公约数 可求{return a*b/GongYin(a,b);}int main(){int n,m;scanf("%d%d",&n,&m);printf("%d,%d的最大公因数是:%d,最小公倍数是%d.
",n,m,GongYin(n,m),GongBei(n,m));}
c语言编写两个自定义函数,分别实现求两个整数的最大公约数和最小公倍...
答:include<stdlib.h> int HCF(int x,int y);//定义最大公约数函数 int LCM(int p,int q);//定义最小公倍数函数 int main(){ int a,b,hcf,lcm;scanf("%d%d",&a,&b);//输入两个整数 hcf=HCF(a,b);//调用最大公约数函数 lcm=LCM(a,b);//调用最小公倍数函数 printf("HCF is...
C语言 输入一个4*4矩阵,编写两个函数分别实现对二维数组元素的行与行...
答:int l1,int l2);//指定的两行交换数据void cl(int (*nums)[4],int l1,int l2);//指定的两列交换数据int main(){ int nums[4][4],i,j,h1,h2,l1,l2,(*p)[4]; for(i=0;i<4;i++) { printf("\n输入4*4矩阵的第%d行的4个数:",i+1); ...
高手进!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语言编写~~编写两个函数,分别求两个整数的最大公约数和最小公倍...
答:printf("请输入两个整数:");scanf("%d%d",&a,&b);q=yue(a,b);p=bei(a,b,q);//最小公倍数=两数的乘积除以它们的最大公约数 printf("最大公约数是:%d\n最小公倍数是:%d\n",q,p);}
C语言程序设计问题:编写两个名为max的重载函数,分别实现求两个整数及...
答:if (x><>输入两个实数#include <;<"cout< cin>endl,f2)<ch2;cout<> return 0:":"} int main(){ int x;;<输入两个整数;max(x;cout<endl;f2,int y){ if (x>ch1>,y)<,ch2)< } float max(float x;f1>y)return x;y)return x;max(ch1;endl;float f1;<x><"y;ret...
c语言编写两个函数,分别求出两个整数的最大公约数和最小公倍数。用主...
答:include "stdio.h"int gcd(int a,int b){int r;while(r=a%b)a=b,b=r;return b;}int lcm(int a,int b){return a/gcd(a,b)*b;}int main(int argc,char *argv[]){int x,y;printf("Please enter 2 positive integers...\n");if(scanf("%d%d",&x,&y)!=2 || x<1 ||...
用C语言编写两个函数,分别完成十进制和二进制之间的转换。
答:include <stdio.h>int main(){ int Type,a,b[10],i=0,c=0; printf("请输入转换类型,1:十进制转二进制;2:二进制转十进制\n"); scanf("%d",&Type); printf("请输入原数据\n"); scanf("%d",&a); switch(Type) { case 1: while(a!=0) {...
C语言编写两个函数,分别求其最大公约数和最小公倍数。并在主函数中输 ...
答:void main(){ int i,j,k,m;scanf("%d%d",&i,&j);k=gy(i,j);m=gb(i,j);printf("最大公约数为%d\n",k);printf("最大公倍数为%d\n",m);} int gy(int a,int b){ int temp,r;if(a
C语言 编写两个子函数,分别为strlength和strswap,实现字符串长度的求...
答:nt strlen(char s[]){ int len=0 ,i;for(i=0;s[i]!='\0';i++)len++;return len;}
C语言中编写两个函数
答:p=p->next;/*p指向下一个结点*/ }while(p!='\0');/*未到链表尾,继续循环*/ printf("->end\n");} } int main(){ SLIST *p;p=creat();take(p);} 我在我的VS2010里面编译运行,没有崩溃 输入 2 3 1 输出 head->2->3->end 输入 1 输出 Linklist is null!