C 语言 math.h 库介绍

简介: 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 <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = acos(x);
    printf("acos(%lf) = %lf radians\n", x, result);
    return 0;
}
  1. double asin(double x):返回以弧度表示的 x 的反正弦。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = asin(x);
    printf("asin(%lf) = %lf radians\n", x, result);
    return 0;
}


  1. double atan(double x):返回以弧度表示的 x 的反正切。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = atan(x);
    printf("atan(%lf) = %lf radians\n", x, result);
    return 0;
}
  1. double atan2(double y, double x):返回以弧度表示的 y/x 的反正切。
#include <stdio.h>
#include <math.h>

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. double cos(double x):返回弧度角 x 的余弦。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = cos(x);
    printf("cos(%lf) = %lf\n", x, result);
    return 0;
}
  1. double cosh(double x):返回 x 的双曲余弦。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = cosh(x);
    printf("cosh(%lf) = %lf\n", x, result);
    return 0;
}
  1. double sin(double x):返回弧度角 x 的正弦。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = sin(x);
    printf("sin(%lf) = %lf\n", x, result);
    return 0;
}
  1. double sinh(double x):返回 x 的双曲正弦。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = sinh(x);
    printf("sinh(%lf) = %lf\n", x, result);
    return 0;
}
  1. double tanh(double x):返回 x 的双曲正切。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 0.5;
    double result = tanh(x);
    printf("tanh(%lf) = %lf\n", x, result);
    return 0;
}
  1. double exp(double x):返回 e 的 x 次幂的值。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 2.0;
    double result = exp(x);
    printf("exp(%lf) = %lf\n", x, result);
    return 0;
}
  1. double frexp(double x, int *exponent):把浮点数 x 分解成尾数和指数。
#include <stdio.h>
#include <math.h>

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. double ldexp(double x, int exponent):返回 x 乘以 2 的 exponent 次幂。
#include <stdio.h>
#include <math.h>

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. double log(double x):返回 x 的自然对数(基数为 e 的对数)。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 10.0;
    double result = log(x);
    printf("log(%lf) = %lf\n", x, result);
    return 0;
}
  1. double log10(double x):返回 x 的常用对数(基数为 10 的对数)。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 100.0;
    double result = log10(x);
    printf("log10(%lf) = %lf\n", x, result);
    return 0;
}
  1. double modf(double x, double *integer):返回小数部分,并设置整数部分。
#include <stdio.h>
#include <math.h>

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. double pow(double x, double y):返回 x 的 y 次幂。
#include <stdio.h>
#include <math.h>

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. double sqrt(double x):返回 x 的平方根。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 25.0;
    double result = sqrt(x);
    printf("sqrt(%lf) = %lf\n", x, result);
    return 0;
}
  1. double ceil(double x):返回大于或等于 x 的最小的整数值。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 4.3;
    double result = ceil(x);
    printf("ceil(%lf) = %lf\n", x, result);
    return 0;
}
  1. double fabs(double x):返回 x 的绝对值。
#include <stdio.h>
#include <math.h>

int main() {
    double x = -4.5;
    double result = fabs(x);
    printf("fabs(%lf) = %lf\n", x, result);
    return 0;
}
  1. double floor(double x):返回小于或等于 x 的最大的整数值。
#include <stdio.h>
#include <math.h>

int main() {
    double x = 4.7;
    double result = floor(x);
    printf("floor(%lf) = %lf\n", x, result);
    return 0;
}
  1. double fmod(double x, double y):返回 x 除以 y 的余数。
#include <stdio.h>
#include <math.h>

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


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

相关文章
|
4月前
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。
ly~
|
5月前
|
数据可视化 BI API
除了 OpenGL,还有哪些常用的图形库可以在 C 语言中使用?
除了OpenGL,C语言中还有多个常用的图形库:SDL,适合初学者,用于2D游戏和多媒体应用;Allegro,高性能,支持2D/3D图形,广泛应用于游戏开发;Cairo,矢量图形库,支持高质量图形输出,适用于数据可视化;SFML,提供简单接口,用于2D/3D游戏及多媒体应用;GTK+,开源窗口工具包,用于创建图形用户界面。这些库各有特色,适用于不同的开发需求。
ly~
1468 4
|
5月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
7月前
|
C语言
C语言中的math库概述
C语言中的math库概述
212 1
|
7月前
|
存储 Serverless C语言
C语言中的标准库函数
C语言中的标准库函数
105 0
|
7月前
|
API 开发工具 C语言
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
452 0
|
9月前
|
存储 移动开发 C语言
技术心得记录:嵌入式开发中常用到的C语言库函数
技术心得记录:嵌入式开发中常用到的C语言库函数
93 1
|
9月前
|
C语言
C语言的标准库:string.h, math.h, stdlib.h
C语言的标准库:string.h, math.h, stdlib.h
117 1
|
9月前
|
机器学习/深度学习 C语言
详细解读C语言math.h中常用函数
详细解读C语言math.h中常用函数
139 1
|
9月前
|
C语言
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
【海贼王编程冒险 - C语言海上篇】库函数怎样模拟实现?
50 1