【从零开始的 C 语言笔记】第十二篇-Math 函式库介绍与应用

不怎么重要的前言

上一篇我们介绍了什么是指标,不晓得大家有没有比较了解地址的概念?

接下来我们来介绍Math函式库吧!


函式库?

还记得在遥远的第三篇我们有介绍在写主函式(main function)前,必须先做好一件事就是引入函式库。

一般来说在程式的开头,我们就会先把会用到的函式库(工具包)引入,我们那时候形容函式库像是汇集了很多函式(工具)的工具包,而我们每次写程式都会引入的「#include <stdio.h>」就是很好的例子,因为「stdio.h」函式库包含了我们很常使用到的printf和scanf,往后也会提到别的函式。

至于「stdio.h」函式库具体包含了什么样的函式,我们可以参考下面这个连结:
<stdio.h> - C语言标準库(gitbook)

既然大概有了函式库的概念,我们接下来要提一下也很好用的函式库--「<math.h>」。


Math函式库

<math.h>是一个包含了许多数学常用计算的函式库,这个函式库的函式基本是以double的资料型态运算与返值,诸如常见的次方计算、log运算、平方根、绝对值、三角函数、自然对数运算,这些都可以在<math.h>中找到对应函式来协助处理,其中也有数学中常应用的常数也被定义。

接下来我们来介绍<math.h>包含的内容:

常数
(1) 介绍定义的变数名称代表运算式数值M_Ee2.71828182845904523536M_LOG2Elog2(e)1.44269504088896340736M_LOG10Elog10(e)0.434294481903251827651M_LN2ln(2)0.693147180559945309417M_LN10ln(10)2.30258509299404568402M_PIpi3.14159265358979323846M_PI_2pi/21.57079632679489661923M_PI_4pi/40.785398163397448309616M_1_PI1/pi0.318309886183790671538M_2_PI2/pi0.636619772367581343076M_2_SQRTPI2/sqrt(pi)1.12837916709551257390M_SQRT2sqrt(2)1.41421356237309504880M_SQRT1_21/sqrt(2)0.707106781186547524401

(2) 实际应用
a. 直接使用

#include <stdio.h>#include <math.h>int main(){    printf("M_PI: %f\n", M_PI);    printf("M_E: %f\n", M_E);    return 0;}

http://img2.58codes.com/2024/20142565EtQaLQk564.png

b. 用变数储存使用

#include <stdio.h>#include <math.h>#define pi M_PIint main(){    double e = M_E;    printf("pi: %f\n", pi);    printf("e: %f\n", e);    return 0;}

http://img2.58codes.com/2024/20142565ZHO9q2tYLR.png

函式
(1) 介绍函式用法double pow(double x, double y)回传x的y次方值。double exp(double x)传回e的x次方值。double sqrt(double x)回传x的平方根值。double fabs(double x)回传x的绝对值。double ceil(double x)回传大于或等于x的最小整数值。double floor(double x)回传小于或等于x的最大整数值。double fmod(double x, double y)回传x除以y的余数值。double log(double x)回传x的自然对数值(基数为e)。double log10(double x)返回 x 的常用对数值(基数为10)。double sin(double x)返回弧度角x的sin值。double cos(double x)返回弧度角x的cos值。double tan(double x)返回弧度角x的tan值。double asin(double x)返回x弧度的sin^(-1)值。double acos(double x)返回x弧度的cos^(-1)值。double atan(double x)返回x弧度的tan^(-1)值。

(2) 实际应用

#include <stdio.h>#include <math.h>#define pi M_PIint main(){    printf("pow: %f\n", pow(2,10));    printf("exp: %f\n", exp(1));    printf("sqrt: %f\n", sqrt(100));    printf("fabs: %f\n", fabs(-1.2345));    printf("ceil: %f\n", ceil(1.2345));    printf("fmod: %f\n", fmod(4.92345,1.2));    printf("log: %f\n", log(1));    printf("log10: %f\n", log10(100));    printf("sin: %f\n", sin(pi/2));    printf("cos: %f\n", cos(0));    return 0;}

http://img2.58codes.com/2024/20142565Oy6tUUcdBW.png


今天的内容简单的介绍了一下math函式库,大概多多少少写程式都可能会用到,虽然出场机率没那么高,不过需要使用的时候,这个函式库可是很方便的。

下一篇我们来介绍Array是什么吧?


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章