C语言学习,标准库<math.h>

<math.h> 是 C 标准库中的一个头文件,提供了一系列用于数学计算的函数。这些函数涵盖了基本的算术运算、三角函数、对数函数、幂函数、浮点环境控制等等。

<math.h> 函数:

基本算术运算
double fabs(double x):返回 x 的绝对值。
double sqrt(double x):返回 x 的平方根。
double cbrt(double x)(C99起):返回 x 的立方根。
double pow(double base, double exponent):返回 base 的 exponent 次幂。
double exp(double x):返回 e 的 x 次幂(e 是自然对数的底数)。
double log(double x):返回 x 的自然对数。
double log10(double x):返回 x 的以 10 为底的对数。
double expm1(double x)(C99起):返回 exp(x) - 1,用于避免 exp(x) 在 x 接近 0 时导致的精度损失。
double log1p(double x)(C99起):返回 log(1 + x),用于避免 log(1 + x) 在 x 接近 0 时导致的精度损失。


三角函数
double sin(double x):返回 x(以弧度为单位)的正弦值。
double cos(double x):返回 x(以弧度为单位)的余弦值。
double tan(double x):返回 x(以弧度为单位)的正切值。
double asin(double x):返回 x 的反正弦值(以弧度为单位)。
double acos(double x):返回 x 的反余弦值(以弧度为单位)。
double atan(double x):返回 x 的反正切值(以弧度为单位)。
double atan2(double y, double x):返回点 (x, y) 的极坐标角(以弧度为单位)。


双曲函数
double sinh(double x):返回 x 的双曲正弦值。
double cosh(double x):返回 x 的双曲余弦值。
double tanh(double x):返回 x 的双曲正切值。
double asinh(double x)(C99起):返回 x 的反双曲正弦值。
double acosh(double x)(C99起):返回 x 的反双曲余弦值。
double atanh(double x)(C99起):返回 x 的反双曲正切值。


浮点环境控制
int feclearexcept(int excepts)(C99起):清除指定的浮点异常。
int fegetexceptflag(fexcept_t *flagp, int excepts)(C99起):获取当前浮点异常标志。
int feraiseexcept(int excepts)(C99起):触发指定的浮点异常。
int fesetexceptflag(const fexcept_t *flagp, int excepts)(C99起):设置浮点异常标志。
int fetestexcept(int excepts)(C99起):测试指定的浮点异常是否发生。


其他函数
double ceil(double x):返回大于或等于 x 的最小整数值(作为浮点数返回)。
double floor(double x):返回小于或等于 x 的最大整数值(作为浮点数返回)。
double trunc(double x)(C99起):返回 x 的整数部分,去掉小数部分但不进行四舍五入。
double round(double x)(C99起):返回 x 的四舍五入值。
long lrint(double x)(C99起):返回 x 的四舍五入值,转换为 long 类型。
long long llrint(double x)(C99起):返回 x 的四舍五入值,转换为 long long 类型。
double nearbyint(double x)(C99起):返回 x 的舍入值,舍入模式由当前浮点环境决定。
double rint(double x)(C99起):返回 x 的舍入值,舍入到最接近的整数,使用 "偶数舍入" 规则。
double modf(double x, double *iptr):将 x 分解为小数部分和整数部分,小数部分返回,整数部分存储在 iptr 中。
double frexp(double x, int *exp):将 x 分解为尾数和指数,使 x = mantissa * 2^exp,尾数返回,指数存储在 exp 中。
double ldexp(double x, int exp):返回 x * 2^exp。
double fmod(double x, double y):返回 x 除以 y 的余数。
double hypot(double x, double y):返回直角三角形的斜边长度,即 sqrt(x*x + y*y)。
double erf(double x)(C99起):返回 x 的误差函数值。
double erfc(double x)(C99起):返回 1 - erf(x),即补误差函数值。
double lgamma(double x)(C99起):返回 x 的伽玛函数的对数值。
double tgamma(double x)(C99起):返回 x 的伽玛函数值。

 

示例:

#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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值