c语言函数调用求最大公约数和最小公倍数

 我来答
问明6E
高粉答主

2020-12-10 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.9万
展开全部

#include<stdio.h>

int a;

int _Y(int x,int y);

int main()

{

int a,b,c,d;

printf(“请输入数字:”);

scanf("%d,%d",&c,&d);//此处注意在输出的时候数字之间要打都好,不然输出结果错误

b=_Y(c,d);

a=c*d/b;

printf(“最大公约数为:%d\n”,b);

printf(“最小公倍数为:%d\n”,a);

return 0;

}

int _Y(int x,int y)

{

int e;

if(x<y)

{

e=x;

x=y;

y=e;

}

while((e=x%y)!=0)

{

x=y;

y=e;

}

return(y);

}

扩展资料:

while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。简单来讲就是说while循环是先判断后循环, 判断如果满足条件进入循环 本次循环后再次判断 。

举个例子:

do-while循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。 简单来讲就是说while循环是先循环后判断 。

举个例子:

总结:while循环是先判断后循环 ,而do–while循环是先循环后判断。

参考资料:

百度百科——while(循环语句及英文单词)

trotkAa
2020-12-11 · TA获得超过1307个赞
知道小有建树答主
回答量:1463
采纳率:100%
帮助的人:45.9万
展开全部
最大公约数:(辗转相除法)int MaxDenominator(int a,int b){if(a%b==0) return b;return MaxDenominator(b,a%b);}最小公倍数:int MinMultiple(int a,int b){return a*b/MaxDenominator(a,b); //要用到最大公约数算法}
最大公约数:(辗转相除法)int MaxDenominator(int a,int b){if(a%b==0) return b;return MaxDenominator(b,a%b);}最小公倍数:int MinMultiple(int a,int b){return a*b/MaxDenominator(a,b); //要用到最大公约数算法}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2020-12-09 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

int gcd(int m,int n)

{return n?gcd(n,m%n):m;

}

int lcm(int m,int n)

{return m*n/gcd(m,n);

}

int main()

{ int a,b;

  scanf("%d%d",&a,&b);

  printf("GCD=%d\nLCM=%d\n",gcd(a,b),lcm(a,b));

  return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式