当前位置: 首页 > article >正文

C语言练习(23)

求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。

①不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输入,并传送给函数f1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数f2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

②用全局变量的方法,分别用两个函数求s最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。

分别用以上两种方法编程并运行,分析对比。

不使用全局变量的方法:

int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}
int lcm(int a, int b) {
    return a * b / gcd(a, b);
}
#include <stdio.h>

int main() {
    int num1, num2;
    printf("请输入两个整数:");
    scanf_s("%d %d", &num1, &num2);

    int gcd_result = gcd(num1, num2);
    int lcm_result = lcm(num1, num2);

    printf("最大公约数是:%d\n", gcd_result);
    printf("最小公倍数是:%d\n", lcm_result);

    return 0;
}

使用全局变量的方法:

int gcd_result;
int lcm_result;
void find_gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    gcd_result = a;
}
void find_lcm(int a, int b) {
    lcm_result = a * b / gcd_result;
}
#include <stdio.h>

int gcd_result;
int lcm_result;

int main() {
    int num1, num2;
    printf("请输入两个整数:");
    scanf_s("%d %d", &num1, &num2);

    find_gcd(num1, num2);
    find_lcm(num1, num2);

    printf("最大公约数是:%d\n", gcd_result);
    printf("最小公倍数是:%d\n", lcm_result);

    return 0;
}


http://www.kler.cn/a/518503.html

相关文章:

  • leetcode_链表 876.链表的中间节点
  • 数组
  • ray.rllib-入门实践-12:自定义policy
  • Typesrcipt泛型约束详细解读
  • centos操作系统上以service形式运行blackbox_exporter监控网页端口
  • Golang 生态学习
  • 开源软件协议介绍
  • 代码随想录 二叉树 test 2
  • 2025美赛数学建模B题 管理可持续旅游业保姆级教程讲解|模型讲解
  • 第19篇:python高级编程进阶:使用Flask进行Web开发
  • 基于Netty的自定义协议栈设计与编解码技术解析
  • 基于Flask的天猫美妆销售数据分析系统的设计与实现
  • PortSwigger靶场练习---跨站点请求伪造:CSRF vulnerability with no defenses没有防御措施的 CSRF 漏洞
  • 导出地图为pdf文件
  • [极客大挑战 2019]Upload1
  • 假期学习【Java程序】的实施方案
  • C#标准Mes接口框架(持续更新)
  • 三分钟简单了解一些HTML的标签和语法_02
  • 技术总结:FPGA基于GTX+RIFFA架构实现多功能SDI视频转PCIE采集卡设计方案
  • Linux 命令行网络连接指南
  • AIGC的企业级解决方案架构及成本效益分析
  • RocketMQ 的 Topic 和消息队列MessageQueue信息,是怎么分布到Broker的?怎么负载均衡到Broker的?
  • 数据结构——二叉树——堆(1)
  • 【后端开发】字节跳动青训营之性能分析工具pprof
  • 正则表达式以及Qt中的使用
  • 为什么UI导入png图会出现白边