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;
相关推荐
迷迭所归处10 分钟前
C++ —— 关于vector
开发语言·c++·算法
leon62539 分钟前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林40 分钟前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
Navigator_Z1 小时前
数据结构C //线性表(链表)ADT结构及相关函数
c语言·数据结构·算法·链表
Aic山鱼1 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
white__ice2 小时前
2024.9.19
c++
天玑y2 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
姜太公钓鲸2332 小时前
c++ static(详解)
开发语言·c++
菜菜想进步2 小时前
内存管理(C++版)
c语言·开发语言·c++
sjsjs112 小时前
【数据结构-一维差分】力扣1893. 检查是否区域内所有整数都被覆盖
数据结构·算法·leetcode