C标准库<math.h>
C标准库<math.h>
1. 库定义
<math.h> 是ISO C标准定义的标准数学函数库头文件,为C语言程序提供通用数学运算接口,包含各类基础数学函数、数值处理函数及相关宏定义与类型定义,是C语言标准库的核心组成部分。
2. 核心功能
该库主要支持浮点型、双精度型、长双精度型数值的数学运算,覆盖以下运算范畴:
- 三角函数与反三角函数
- 双曲函数与反双曲函数
- 指数函数、对数函数
- 幂函数、平方根、立方根运算
- 绝对值、取整、取余、取模运算
- 浮点数分类、舍入、比较等辅助运算
所有函数遵循IEEE 754浮点数标准,保证跨平台运算一致性。
3. 标准数据类型与宏定义
常用类型
double:多数数学函数的默认参数与返回值类型float、long double:对应高精度版本函数支持
标准宏
HUGE_VAL:表示极大的浮点数值INFINITY:无穷大常量NAN:非数值常量M_PI:圆周率π(部分编译器需开启宏定义支持)
4. 常用标准函数示例
(1)三角函数(单位:弧度)
double sin(double x); // 正弦函数
double cos(double x); // 余弦函数
double tan(double x); // 正切函数
double asin(double x); // 反正弦函数
double acos(double x); // 反余弦函数
double atan(double x); // 反正切函数
(2)指数与对数函数
double exp(double x); // 自然指数 e^x
double log(double x); // 自然对数 ln(x)
double log10(double x); // 以10为底的对数
(3)幂与方根运算
double pow(double base, double exp); // 幂运算 base^exp
double sqrt(double x); // 平方根
double cbrt(double x); // 立方根
(4)绝对值与取整函数
double fabs(double x); // 浮点数绝对值
double floor(double x); // 向下取整
double ceil(double x); // 向上取整
double round(double x); // 四舍五入
double fmod(double x, double y); // 浮点数取余
5. 使用规范
- 使用前必须包含头文件:
#include <math.h>
- 部分编译环境(如GCC)链接时需添加数学库:
gcc program.c -o program -lm
- 函数输入参数需满足定义域约束,否则返回值域错误(如负数开方、对数输入负数)。
- 所有函数默认操作
double类型,float与long double版本函数后缀为f/l(如sinf、sinl)。
参考资料:C 标准库 – | 菜鸟教程
#include <stdio.h>
#include <math.h>
int main() {
double x = 2.0;
double y = 3.0;
// 基本运算
printf("sqrt(%.1f) = %.2f\n", x, sqrt(x));
printf("pow(%.1f, %.1f) = %.2f\n", x, y, pow(x, y));
printf("exp(%.1f) = %.2f\n", x, exp(x));
printf("log(%.1f) = %.2f\n", x, log(x));
printf("log10(%.1f) = %.2f\n", x, log10(x));
// 三角函数
double angle = M_PI / 4; // 45 degrees
printf("sin(%.2f) = %.2f\n", angle, sin(angle));
printf("cos(%.2f) = %.2f\n", angle, cos(angle));
printf("tan(%.2f) = %.2f\n", angle, tan(angle));
// 舍入函数
double z = 5.8;
printf("ceil(%.1f) = %.1f\n", z, ceil(z));
printf("floor(%.1f) = %.1f\n", z, floor(z));
printf("fabs(%.1f) = %.1f\n", z, fabs(z));
return 0;
}
sqrt(2.0) = 1.41
pow(2.0, 3.0) = 8.00
exp(2.0) = 7.39
log(2.0) = 0.69
log10(2.0) = 0.30
sin(0.79) = 0.71
cos(0.79) = 0.71
tan(0.79) = 1.00
ceil(5.8) = 6.0
floor(5.8) = 5.0
fabs(5.8) = 5.8
浙公网安备 33010602011771号