第五章 C语言标准库<math.h>头文件用法汇总

3.4、<math.h>

3.4.1数学常量

3.4.1.1、M_PI 和其他常量(部分实现支持)
  • 功能:数学常量,如 π。
  • 示例:(在某些编译器或标准库实现中,M_PI可能没有被定义。需要手动定义M_PI常量来防止报错)
#include <stdio.h>
#include <math.h>
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

int main()
{
    printf("PI的值是:%f\n", M_PI);
    return 0;
}

注意:M_PI 并非在所有实现中定义。如果未定义,可以自己定义 #define M_PI 3.14159265358979323846

3.4.2幂函数

3.4.2.1、pow
  • 功能:计算 xy 次幂。
  • 原型double pow(double x, double y);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double base = 2.0, exponent = 3.0;
    printf("%.2f^%.2f = %.2f\n", base, exponent, pow(base, exponent));
    return 0;
}
3.4.2.2、sqrt
  • 功能:计算平方根。
  • 原型double sqrt(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = 16.0;
    printf("Square root of %.2f is %.2f\n", num, sqrt(num));
    return 0;
}
3.4.2.3、cbrt
  • 功能:计算立方根。
  • 原型double cbrt(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = 27.0;
    printf("Cube root of %.2f is %.2f\n", num, cbrt(num));
    return 0;
}

3.4.3对数函数

3.4.3.1、log
  • 功能:计算自然对数(以 e 为底)。
  • 原型double log(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = 2.71828; // e的近似值
    printf("Natural log of %.2f is %.2f\n", num, log(num));
    return 0;
}
3.4.3.2、log10
  • 功能:计算常用对数(以 10 为底)。
  • 原型double log10(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = 100.0;
    printf("Log以10为底 %.2f is %.2f\n", num, log10(num));
    return 0;
}
3.4.3.3、log2
  • 功能:计算以 2 为底的对数。
  • 原型double log2(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = 8.0;
    printf("Log以2为底的对数 %.2f 是 %.2f\n", num, log2(num));
    return 0;
}

3.4.4三角函数

3.4.4.1、sin, cos, tan
  • 功能:计算正弦、余弦、正切值。
  • 原型
    • double sin(double x);
    • double cos(double x);
    • double tan(double x);
  • 示例
#include <stdio.h>
#include <math.h>
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

int main()
{
    double angle = M_PI / 4; // 45 degrees in radians
    printf("sin(%.2f) = %.2f\n", angle, sin(angle));
    printf("cos(%.2f) = %.2f\n", angle, cos(angle));
    printf("tan(%.2f) = %.2f\n", angle, tan(angle));
    return 0;
}

3.4.4.2、asin, acos, atan
  • 功能:计算反正弦、反余弦、反正切值。
  • 原型
    • double asin(double x);
    • double acos(double x);
    • double atan(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double value = 0.707; // Approximately sin(45°)
    printf("asin(%.3f) = %.3f radians\n", value, asin(value));
    printf("acos(%.3f) = %.3f radians\n", value, acos(value));
    printf("atan(%.3f) = %.3f radians\n", value, atan(value));
    return 0;
}
3.4.4.3、atan2
  • 功能:计算 y/x 的反正切值,结果以弧度为单位。
  • 原型double atan2(double y, double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double y = 1.0, x = 1.0;
    printf("atan2(%.2f, %.2f) = %.2f radians\n", y, x, atan2(y, x));
    return 0;
}

3.4.5双曲函数

3.4.5.1、sinh, cosh, tanh
  • 功能:计算双曲正弦、双曲余弦、双曲正切值。
  • 原型
    • double sinh(double x);
    • double cosh(double x);
    • double tanh(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double x = 1.0;
    printf("sinh(%.2f) = %.2f\n", x, sinh(x));
    printf("cosh(%.2f) = %.2f\n", x, cosh(x));
    printf("tanh(%.2f) = %.2f\n", x, tanh(x));
    return 0;
}

3.4.6其他数学函数

3.4.6.1、fabs
  • 功能:计算绝对值。
  • 原型double fabs(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = -3.5;
    printf("Absolute value of %.2f is %.2f\n", num, fabs(num));
    return 0;
}
3.4.6.2、ceilfloor
  • 功能
    • ceil:向上取整。
    • floor:向下取整。
  • 原型
    • double ceil(double x);
    • double floor(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = 3.14;
    printf("向上取整 %.2f 是 %.2f\n", num, ceil(num));
    printf("向下取整 %.2f 是 %.2f\n", num, floor(num));
    return 0;
}
3.4.6.3、round
  • 功能:返回四舍五入后的值。
  • 原型double round(double x);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double num = 3.65;
    printf("值 %.2f 四舍五入后是 %.2f\n", num, round(num));
    return 0;
}
3.4.6.4、fmod
  • 功能:计算浮点数除法的余数。
  • 原型double fmod(double x, double y);
  • 示例
#include <stdio.h>
#include <math.h>

int main()
{
    double x = 5.3, y = 2.0;
    printf("%.2f / %.2f 余数是 %.2f\n", x, y, fmod(x, y));
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值