网站首页 > 技术文章 正文
点击蓝字,关注我们
往期回顾
C语言的魔法书:揭秘stdio.h
数学公式"math.h"标准头文件,你知道什么时候用?怎么用吗?(一)
01
本节重点
C语言<math.h>标准头文件
情景回顾
上节说了关于<math.h>头文件的一些概念和一些类型,那么后续教教如何使用<math.h>头文件。
<math.h>头文件的使用方法
要使用<math.h>头文件中的函数和宏,我们需要在程序开头使用#include指令来引用它,如:
#include <math.h>
然后,我们就可以在程序中调用<math.h>头文件中的函数和宏,如:
float c = sin(a) + cos(b); //调用sin和cos函数
注意,<math.h>头文件中的函数和宏都是以浮点数为参数和返回值的,所以我们需要使用float或double类型的变量来存储它们的结果,如:
float c = sin(a) + cos(b); //正确
int c = sin(a) + cos(b); //错误,会丢失精度
另外,<math.h>头文件中的函数和宏都是以弧度为单位来表示角度的,所以我们需要使用弧度和角度的换算公式来转换它们,如:
float a = PI / 6; //定义一个变量表示π/6弧度
float b = 30; //定义一个变量表示30度
float c = sin(a); //正确,a是弧度
float d = sin(b); //错误,b是角度,需要转换为弧度
float e = sin(b * PI / 180); //正确,将b转换为弧度
<math.h>头文件的注意事项和常见错误
<math.h>头文件中的函数和宏都是以浮点数为参数和返回值的,所以我们需要使用float或double类型的变量来存储它们的结果,否则会丢失精度或出现错误。
<math.h>头文件中的函数和宏都是以弧度为单位来表示角度的,所以我们需要使用弧度和角度的换算公式来转换它们,否则会得到错误的结果或出现域错误。
<math.h>头文件中的一些函数和宏有一些限制或特殊情况,我们需要注意它们的定义域和值域,以及可能出现的异常或错误。
例如:
- asin,acos,atanh函数的参数必须在-1到1之间,否则会出现域错误。
- acosh函数的参数必须大于等于1,否则会出现域错误。
- log,log10,sqrt函数的参数必须大于0,否则会出现域错误。
- pow函数的第一个参数不能为负数,第二个参数不能为小数,否则会出现域错误。
- fmod函数的第二个参数不能为0,否则会出现除零错误。
- frexp函数的第二个参数必须是一个指针,否则会出现段错误。
- modf函数的第二个参数必须是一个指针,否则会出现段错误。
点赞加关注,学习不迷路
微信公众号|工控小新
EPLAN电气绘图、TIA博图基础 、CAD、C语言教学、单片机基础、三菱PLC ... 每日持续更新中
猜你喜欢
- 2024-11-09 极客算法训练笔记(十),十大经典排序之计数排序、基数排序
- 2024-11-09 Axure RP 9 学习笔记 - 常用数学函数
- 2024-11-09 判断坐标点是否在高德地图围栏内的算法?
- 2024-11-09 Quick Pow: 如何快速求幂 快速幂算法
- 2024-11-09 十六、Java运算符-优先级与表达式
- 2024-11-09 抖音B站…推荐机制的原型,威尔逊得分排序算法
- 2024-11-09 浅谈移动设备交互体验之惯性滚动 惯性移轴定理
- 2024-11-09 JS中常见的Math对象 javascript中math
- 2024-11-09 力扣73——矩阵置零 矩阵置0
- 2024-11-09 基数排序的1个小技巧,2种排序方式,3种排序算法
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-