C/C++ 数学运算与数学函数

数学标准库

  1. C 标准库 (<math.h>)

    • 这是 C 语言的标准数学库,提供了各种数学函数,如三角函数、指数函数、对数函数等。
    • 示例函数:sin, cos, tan, exp, log, sqrt, pow, fabs, fmod 等。
  2. C++ 标准库 (<cmath>)

    • C++ 的标准数学库,基本上与 <math.h> 相同,但在 C++ 中提供了更好的类型安全性和命名空间支持。
    • 示例函数:与 <math.h> 类似,但通常使用 std:: 命名空间。

数学函数库

  1. 三角函数:

    • sin(x): 正弦函数。
    • cos(x): 余弦函数。
    • tan(x): 正切函数。
    • asin(x): 反正弦函数。
    • acos(x): 反余弦函数。
    • atan(x): 反正切函数。
  2. 指数与对数函数:

    • exp(x): 自然指数函数 ( e^x )。
    • expm1(x): 计算 ( e^x - 1 ),对于接近零的 x 更精确。
    • log(x): 自然对数函数 ( \ln(x) )。
    • log10(x): 以 10 为底的对数函数。
    • pow(x, y): 计算 ( x^y )。
  3. 幂和根函数:

    • sqrt(x): 平方根函数。
    • cbrt(x): 立方根函数。
    • hypot(x, y): 计算 ( \sqrt{x^2 + y^2} )。
  4. 取整和取余函数:

    • floor(x): 向下取整函数。
    • ceil(x): 向上取整函数。
    • round(x): 四舍五入函数。
    • trunc(x): 截断函数,保留整数部分。
    • fmod(x, y): 返回 x 除以 y 的余数。
  5. 其他函数:

    • fabs(x): 绝对值函数,浮点数。
    • abs(x): 绝对值函数,整数。

算术运算符

C 和 C++ 支持多种基本的数学运算符,这些运算符可以用来执行常见的算术操作。下面是 C/C++ 中的一些基本数学运算符及其用途:

  1. 加法 (+):

    • 用于两个数相加。
    • 示例: int sum = 5 + 3;
  2. 减法 (-):

    • 用于两个数相减。
    • 示例: int difference = 5 - 3;
  3. 乘法 (*):

    • 用于两个数相乘。
    • 示例: int product = 5 * 3;
  4. 除法 (/):

    • 用于两个数相除。
    • 对于整数除法,结果会被截断为整数(向下取整)。
    • 示例: int quotient = 5 / 3; // 结果为 1
    • 示例: double quotient = 5.0 / 3; // 结果为 1.6666666666666667
  5. 取模 (%):

    • 用于获取两个整数相除后的余数。
    • 示例: int remainder = 5 % 3; // 结果为 2
  6. 自增 (++):

    • 用于增加变量的值。
    • 示例: int i = 1; i++;
  7. 自减 (--):

    • 用于减少变量的值。
    • 示例: int i = 1; i--;
  8. 前缀自增 (++i):

    • 在使用变量之前先增加变量的值。
    • 示例: int j = ++i;
  9. 后缀自增 (i++):

    • 先使用变量的值,然后再增加变量的值。
    • 示例: int j = i++;
  10. 前缀自减 (--i):

    • 在使用变量之前先减少变量的值。
    • 示例: int j = --i;
  11. 后缀自减 (i--):

    • 先使用变量的值,然后再减少变量的值。
    • 示例: int j = i--;

除了上述基本运算符之外,C/C++ 还支持一些复合赋值运算符,这些运算符结合了赋值运算符和算术运算符,例如:

  • += (加法赋值)
  • -= (减法赋值)
  • *= (乘法赋值)
  • /= (除法赋值)
  • %= (取模赋值)

示例:

cpp 复制代码
int x = 5;
x += 3; // 等价于 x = x + 3;
相关推荐
爪哇学长7 分钟前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
爱摸鱼的孔乙己8 分钟前
【数据结构】链表(leetcode)
c语言·数据结构·c++·链表·csdn
Dola_Pan10 分钟前
C语言:数组转换指针的时机
c语言·开发语言·算法
繁依Fanyi23 分钟前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
烦躁的大鼻嘎39 分钟前
模拟算法实例讲解:从理论到实践的编程之旅
数据结构·c++·算法·leetcode
IU宝43 分钟前
C/C++内存管理
java·c语言·c++
fhvyxyci44 分钟前
【C++之STL】摸清 string 的模拟实现(下)
开发语言·c++·string
qq_459730031 小时前
C 语言面向对象
c语言·开发语言
C++忠实粉丝1 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
古月居GYH1 小时前
在C++上实现反射用法
java·开发语言·c++