C语言程序设计第五版谭浩强 第七章答案 您所在的位置:网站首页 c语言程序设计第八章答案 C语言程序设计第五版谭浩强 第七章答案

C语言程序设计第五版谭浩强 第七章答案

2024-07-05 19:05| 来源: 网络整理| 查看: 265

C语言程序设计第五版谭浩强著 第七章答案

在这里插入图片描述

第七章 用函数实现模块化程序设计 1、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输人。 题目解析:

该题直接使用“辗转相除法”来求解最大公约数和最小公倍数

最大公约数找出两数中的最小值,然后直接相模,当能够同时被两数整除时,则为最大公约数。

最小公倍数找出两数中的最大值,然后直接进入死循环,直到找到一个数能够同时被两数整除时,则为最小公倍数

【注】此题还有一些比较高级的解法,比如求最大公约数的相减法、欧几里德辗转相除法等,有兴趣的同学可以查询相关资料

代码示例: #include //最大公约数 size_t GCD(size_t a, size_t b) { size_t gcd; gcd = a > b ? b : a; while(gcd > 1) { if((a % gcd == 0) && (b % gcd == 0)) return gcd; gcd--; } return gcd; } //最小公倍数 size_t LCM(size_t a, size_t b) { size_t lcm; lcm = a > b ? a : b; while(1) { if((lcm % a==0) && (lcm % b==0)) break; lcm++; } return lcm; } int main() { size_t a, b, result; printf("请输入两个整数:>"); scanf("%d %d", &a, &b); result = GCD(a, b); printf("%d和%d的最大公约数为:%d\n", a, b, result); result = LCM(a, b); printf("%d和%d的最小公倍数为:%d\n", a, b, result); return 0; } 运行结果:

C语言程序设计谭浩强第五版课后答案第一题

2、求方程 a x 2 + b x + c = 0 {ax}^2+bx+c=0 ax2+bx+c=0的根,用3个函数分别求当: b 2 − 4 a c b^2-4ac b2−4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值。 题目解析 根据disc = b 2 − 4 a c b^2-4ac b2−4ac 的值来决定如何求根,题目本身编程不难,不过需要同学们复习一下高中的数学知识哦。 代码示例 #include #include //x1为第一个根,x2为第二个根 float x1, x2, disc, p, q; void greater_than_zero(float a, float b) { float m = sqrt(disc); x1 = (-b + sqrt(disc)) / (2 * a); x2 = (-b - sqrt(disc)) / (2 * a); } void equal_to_zero(float a, float b) { x1 = x2 = (-b) / (2 * a); } void smaller_than_zero(float a, float b) { p = -b / (2 * a); q = sqrt(-disc) / (2 * a); } int main() { int a, b, c; printf("请输入 a b c:"); scanf("%d %d %d", &a, &b, &c); printf("表达式为: %d*x^2+%d*x+%d = 0\n", a, b, c); disc = b*b - 4 * a*c; if (disc > 0) { greater_than_zero(a, b); printf("disc>0的根为: x1=%f x2=%f\n", x1, x2); } else if (disc == 0) { equal_to_zero(a, b); printf("disc==0的根为:x1=%f x2=%f\n", x1, x2); } else { smaller_than_zero(a, b); printf("disc


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有