第16章 常用数学函数
前置说明
C语言使用头文件<math.h>,C++推荐<cmath>;随机函数额外引入<ctime>。大部分函数参数、返回值为double类型。
16.1 绝对值函数
int abs(int x):整数绝对值,接收intlong labs(long x):长整型绝对值double fabs(double x):浮点数绝对值 示例:
abs(-9); // 9
fabs(-3.14);// 3.14
16.2 幂与开方
pow(x, y):计算 ,两个参数均为doublepow(2,3)= 8.0sqrt(x):平方根,要求sqrt(16)= 4.0
16.3 取整函数
ceil(x):向上取整,取大于等于x的最小整数ceil(3.2)=4,ceil(-2.1)=-2floor(x):向下取整,取小于等于x的最大整数floor(3.9)=3,floor(-2.1)=-3round(x):四舍五入取整round(3.6)=4,round(-2.3)=-2
16.4 最值函数
max(a,b) / min(a,b):整数最大、最小值fmax(a,b) / fmin(a,b):浮点最大、最小值
16.5 随机数函数
rand():返回 (一般32767)伪随机整数srand(seed):设置随机种子,srand(time(NULL))保证每次序列不同- 生成区间 公式:
a + rand() % (b - a + 1)示例:生成1~10随机数
int num = 1 + rand() % 10;
16.6 其他数学工具
fmod(x,y):浮点数取余,fmod(5.3, 2) = 1.3signbit(x):判断正负,负数返回非0,正数返回0
16.7 使用注意
- 浮点函数运算结果为double,赋值int会自动截断;
sqrt、pow负数传入会出现未定义错误;- 不写
srand每次运行随机数完全一样; - 混合运算注意类型转换,避免精度丢失。