鱼C论坛

 找回密码
 立即注册
查看: 3713|回复: 0

[学习笔记] 编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函...

[复制链接]
发表于 2021-5-18 18:17:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. /*

  2. 开发者:慢蜗牛 开发时间:2020.5.28

  3. 程序功能:计算最大公约数和最小公倍数

  4. */

  5. #include<stdio.h>
  6. #include<math.h>

  7. int max_(int a, int b);
  8. int min_(int a,int b);

  9. int max_(int a, int b)//求最大公约数

  10. {

  11. int n,  little;

  12. a = abs(a); b = abs(b);//取绝对值

  13. little = a < b ? a : b;//取两数中最小值

  14. for (n = little; n > 0; n--)

  15. {

  16.     if (a % n == 0 && b % n == 0)

  17.     break;

  18.     else continue;

  19. }

  20. return n;

  21. }

  22. int min_(int a, int b)//求最小公倍数

  23. {

  24. int n, old;

  25. old = abs(a) > abs(b) ? abs(a) : abs(b);//去两数的绝对值的最大值

  26. for (n = old;; n++)

  27. {

  28.     if (n % abs(a) == 0 && n % abs(b) == 0)

  29.     break;

  30.     else continue;

  31. }

  32. if (a < 0 || b < 0) return (-n);//根据有无正负,返回相关正负值

  33. else return n;

  34. }

  35. void main()

  36. {

  37. int a, b;

  38. int c, d;

  39. while (1)//循环

  40. {

  41.     scanf_s("%d,%d", &a, &b);

  42.     while(a == 0 || b == 0)//控制两数不等于0

  43. {

  44. printf("input error,please re-enter:\n");

  45. scanf_s("%d,%d", &a, &b);

  46. }

  47. c=max_(a, b);//调用函数

  48. d=min_(a, b);

  49. printf("%d,%d\n", c, d);//输出

  50. }

  51. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 13:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表