• C 语言 math.h 库介绍


    在 C 语言中,math.h 头文件定义了各种数学函数和一个宏,用于处理数学运算。这些函数接受 double 类型的参数,并返回 double 类型的结果。

    库宏

    math.h 中定义了唯一的一个宏:

    1. HUGE_VAL:当函数的结果不可表示为浮点数时,如果是因为结果的幅度太大而无法表示,则函数会设置 errnoERANGE,并返回一个由宏 HUGE_VAL 或其否定(- HUGE_VAL)表示的特定的很大的值。

    库函数

    下面是 math.h 中定义的各种数学函数及其描述:

    1. double acos(double x):返回以弧度表示的 x 的反余弦。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = acos(x);
        printf("acos(%lf) = %lf radians\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double asin(double x):返回以弧度表示的 x 的反正弦。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = asin(x);
        printf("asin(%lf) = %lf radians\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double atan(double x):返回以弧度表示的 x 的反正切。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = atan(x);
        printf("atan(%lf) = %lf radians\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double atan2(double y, double x):返回以弧度表示的 y/x 的反正切。
    #include 
    #include 
    
    int main() {
        double y = 0.5;
        double x = 0.5;
        double result = atan2(y, x);
        printf("atan2(%lf, %lf) = %lf radians\n", y, x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. double cos(double x):返回弧度角 x 的余弦。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = cos(x);
        printf("cos(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double cosh(double x):返回 x 的双曲余弦。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = cosh(x);
        printf("cosh(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double sin(double x):返回弧度角 x 的正弦。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = sin(x);
        printf("sin(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double sinh(double x):返回 x 的双曲正弦。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = sinh(x);
        printf("sinh(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double tanh(double x):返回 x 的双曲正切。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        double result = tanh(x);
        printf("tanh(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double exp(double x):返回 e 的 x 次幂的值。
    #include 
    #include 
    
    int main() {
        double x = 2.0;
        double result = exp(x);
        printf("exp(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double frexp(double x, int *exponent):把浮点数 x 分解成尾数和指数。
    #include 
    #include 
    
    int main() {
        double x = 123.45;
        int exponent;
        double mantissa = frexp(x, &exponent);
        printf("frexp(%lf) = %lf * 2^%d\n", x, mantissa, exponent);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. double ldexp(double x, int exponent):返回 x 乘以 2 的 exponent 次幂。
    #include 
    #include 
    
    int main() {
        double x = 0.5;
        int exponent = 3;
        double result = ldexp(x, exponent);
        printf("ldexp(%lf, %d) = %lf\n", x, exponent, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. double log(double x):返回 x 的自然对数(基数为 e 的对数)。
    #include 
    #include 
    
    int main() {
        double x = 10.0;
        double result = log(x);
        printf("log(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double log10(double x):返回 x 的常用对数(基数为 10 的对数)。
    #include 
    #include 
    
    int main() {
        double x = 100.0;
        double result = log10(x);
        printf("log10(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double modf(double x, double *integer):返回小数部分,并设置整数部分。
    #include 
    #include 
    
    int main() {
        double x = 3.5;
        double integerPart;
        double fractionalPart = modf(x, &integerPart);
        printf("modf(%lf) = integer part: %lf, fractional part: %lf\n", x, integerPart, fractionalPart);
        return 0
    
    ;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. double pow(double x, double y):返回 x 的 y 次幂。
    #include 
    #include 
    
    int main() {
        double x = 2.0;
        double y = 3.0;
        double result = pow(x, y);
        printf("pow(%lf, %lf) = %lf\n", x, y, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. double sqrt(double x):返回 x 的平方根。
    #include 
    #include 
    
    int main() {
        double x = 25.0;
        double result = sqrt(x);
        printf("sqrt(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double ceil(double x):返回大于或等于 x 的最小的整数值。
    #include 
    #include 
    
    int main() {
        double x = 4.3;
        double result = ceil(x);
        printf("ceil(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double fabs(double x):返回 x 的绝对值。
    #include 
    #include 
    
    int main() {
        double x = -4.5;
        double result = fabs(x);
        printf("fabs(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double floor(double x):返回小于或等于 x 的最大的整数值。
    #include 
    #include 
    
    int main() {
        double x = 4.7;
        double result = floor(x);
        printf("floor(%lf) = %lf\n", x, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. double fmod(double x, double y):返回 x 除以 y 的余数。
    #include 
    #include 
    
    int main() {
        double x = 10.5;
        double y = 3.0;
        double result = fmod(x, y);
        printf("fmod(%lf, %lf) = %lf\n", x, y, result);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    以上是 math.h 库中所有函数的简要介绍和示例代码。这些函数涵盖了常见的数学运算,如三角函数、指数函数、对数函数、取整函数等,可以方便地在 C 语言程序中进行数学计算。

  • 相关阅读:
    前端入门学习笔记三十四
    Spring(七)- Spring Bean的生命周期
    shell基础语法总结
    2309d用dmd重写dfmt
    【JAVA UI】HarmonyOS如何跳转三方的地图导航
    150个pb网站模板(都是成品网站,上传php空间即可使用),建站必备
    不同厂商SOC芯片在视频记录仪领域的应用
    编写汽车零部件开发问题分析报告培训与报告内容检查单
    振弦传感器和无线振弦采集仪在隧道安全监测的解决方案
    ES学习笔记
  • 原文地址:https://blog.csdn.net/qq_29752857/article/details/136238918