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));}
#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语言编程:自定义一个5*5的矩阵,找出矩阵中最大的数,并输出其所在的行...
代码文本:include "stdio.h"define N 5 void dispmatrix(int (*p)[N]){ int i,j;for(i=0;i<N;i++){ for(j=0;j<N;printf("%4d",p[i][j++]));putchar('\\n');} } void findmax(int p[][N]){ int i,j,mi,mj;for(mi=mj=i=0;i<N;i++)for(j=0;j<N;j++)if...
编写一个带自定义函数的c语言程序,完成输入a.b.c三个值,计算并输出3者...
include"stdio.h"void MyFunction() \/\/自定义函数{ int i,j,k; scanf("%d,%d,%d",&i, &j, &k); printf("sum= %d\\n", i+j+k);}void main(){ Myfunction(); \/\/调用自定义函数}
C语言,求解! 编写用户自定义函数,传入一个十进制整数,传回其二进制表示...
include <stdio.h>char *dec2bin(char *x,int n){int i,j; char c; for(i=-1;n;n\/=2) x[++i]=n%2+'0'; x[i+1]=0; for(j=0;j
急 在线等 C语言 自定义函数,完成任意两个实数的四则运算
\/\/ 自定义函数,完成任意两个实数的四则运算。\/\/ 主函数中输出计算结果。\/\/ 函数头为:double fun(double x,double y,char z)\/\/ 其中:x,y接受两个实数。Z接受一个运算符。include<stdio.h> include<math.h> double fun(double x,double y,char z){ double ret = 0.0;switch(z){ cas...
C语言用二维数组定义一个自定义函数数组的最大值?
以下是一个C语言程序,用二维数组定义一个自定义函数数组,并计算数组中的最大值:```c include <stdio.h> \/\/ 自定义函数,用于计算一个整数数组的最大值 int array_max(int arr[], int len) { int max = arr[0];for (int i = 1; i < len; i++) { if (arr[i] > max) { ...
C语言,请编写函数fun(自定义函数),其功能是:将一组得分中,去掉一个最...
temp = 0;for (int i=1;i<n;i++){if (a[temp]>a[i]){temp =i;}}return temp;}void fun() \/\/去掉最高分和最低分的函数{int i,k,f;float a[N],sum = 0,avg = 0 ;printf("请输入10个分数\\n");for(i=0;i<N;i++){scanf("%f",&a[i]);}k = findmax(...
编写一个带自定义函数的c语言程序,完成输入a.b.c三个值,计算并输出3者...
\/\/\/代码如下\/\/\/ include <stdio.h> int sum(int add_a, int add_b, int add_c){ return (add_a + add_b + add_c);} int main(){ int a, b, c;scanf("%d %d %d", &a, &b, &c);printf("a + b + c = %d \\n", sum(a, b ,c));} \/\/\/ 附件中有\/\/\/...
请用C语言自定义函数的形式编程实现求10名学生1门课程成绩的平均分...
include <stdio.h> float ave(float *a, int n){ float r=0;int i;for(i = 0; i < n; i ++)r+=n;return r\/n;} int main(){ float a[10];int i;for(i = 0; i < 10; i ++)scanf("%f",a+i);printf("%f\\n", ave(a,10));return 0;} ...
用c语言定义一个整型数组,编写一个程序,主函数调用下面几个自定义函数...
代码如下:include <stdio.h>#include <stdlib.h>#define N 10void input(int data[], int n){int i;printf("请输入%d个整数:", n);for (i = 0; i < n; i++) {scanf("%d", &data[i]);}}void sort(int data[], int n){int i, j, temp;for (i = 0; i < n - 1...
C语言怎样做●任意输入一个月份(1-12) ,编写自定义函数输出其对应的季...
include<stdio.h> int main(){ int m;char s[4][5]= {"春季","夏季","秋季","冬季"};scanf("%d",&m);\/\/for(m=1; m<13; m++)printf("%d月:%s\\n",m,s[((m+9)%12\/3)]); \/\/+9:3,4,5为春季,+10:2,3,4为春季 return 0;} ...
箕德孚宁:[答案] 用C语言编写函数,在主函数中输入N个人的某门课程的成绩,分别用函数求 平均值 最高分 最低分 #include
渑池县17122801935: 两个函数编写 请用C语言实现 - ?
箕德孚宁: byte* alloc(int n) { byte* p = malloc(n); return p; } free(p);
渑池县17122801935: 用C语言编写两个函数,分别完成十进制和二进制之间的转换.?
箕德孚宁: 10->2 #include<stdio.h> int main() { int i,j,x=0; int a[1000]; scanf("%d",&x); for(i=0;;i++) { a[i]=x%2; x=x/2; if(x==0) { break; } } for(;i>-1;i--) { printf("%d",a[i]); } printf("\n"); return 0; } 2->10 #include <stdio.h> int main(void) { long int bin; int lln=1,...
渑池县17122801935: 用C语言写一下两个函数 - ?
箕德孚宁: /*1.写一个函数,输入一个16进制数,输出相应的十进制数.2.设计一个函数用来判断一个整数是否为素数*/#include<stdio.h>#include<math.h> int Trans16To10(int N16); int IsPrime(int n); main() { Trans16To10(0xa); if(IsPrime(300)) printf("yes"...
渑池县17122801935: 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; }
渑池县17122801935: c语言课设,我想用两个函数实现,可是不知道制作简单界面不知道刚开始怎么调用,两个函数也不太会,求大 - ?
箕德孚宁: 首先用C语言提供的printf函数给出一个较为友好的界面(如在控制台界面先要显示一个”这是一个将10进制转换为8/16进制的程序然后换行“输入你需要转换的10进制数”,最后你要把转换的结果输出出来 我这里只是举一个例子你可以做的更好或者更简单的界面都是依你而定) 然后比较常用的办法是用栈来将数据进行存储和输出 算法大概是对一个10进制数字进行循环求余运算(进制转换的数学机理我应该不用解释了吧) 然后将每次的余数入栈然后再将栈里面的数据输出(利用了 栈的先入后出的特性)
渑池县17122801935: 用C语言定义两个函数,分别求两个整数的最大公约数和最小公倍数. - ?
箕德孚宁:[答案] #include int gongyue(int m,int n){int r;if(m==n) return m;elsewhile((r=m%n)!=0){m=n;n=r;}return n;}int gongbei(int m,int n){if(m==n) return m;else return m*n/gongyue(m,n);} void main(){int a,b,i;print...
渑池县17122801935: C语言程序设计问题:编写两个名为max的重载函数,分别实现求两个整数及两个实数中的大数(最好简单一 - ?
箕德孚宁: using namespace std; return y; cin> cout< return y;< } char max(char x;>>,float y) { if (x>,ch2:"y) return x;> cin>输入两个字符;iostream>max(f1; cout< char ch1;<<,y; int max(int x,f2;<" cout<>,char y) { if (x><>输入两个实数#include <;<" cout< ...
渑池县17122801935: 写2个函数,分别用于将字符大写转小写,小写转大写. - ?
箕德孚宁: #include <stdio.h>#include <string.h> void Upcase(char *p, int n) { int i = 0; for( i = 0; i < n; i++ ) {if(*(p+i)>='a' && *(p+i) <= 'z') printf("%c",*(p+i)-32); else printf("%c",*(p+i)); } printf("\n"); } void Lowcase(char *p , int n) { int i = 0; for( i = 0; i < n; ...
渑池县17122801935: 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,...