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;
相关推荐
BB_CC_DD22 分钟前
四. 以Annoy算法建树的方式聚类清洗图像数据集,一次建树,无限次聚类搜索,提升聚类搜索效率。(附完整代码)
深度学习·算法·聚类
YHY_13s25 分钟前
访问者模式
c++·访问者模式
我也不曾来过11 小时前
list底层原理
数据结构·c++·list
A charmer1 小时前
C++ 日志系统实战第三步:熟悉掌握各种设计模式
c++·日志系统
Ethon_王1 小时前
STL容器适配器详解:queue篇
c++
静听夜半雨1 小时前
CANoe入门——3、新建LIN工程及LIN DataBase(LDF文件)的创建
网络·数据库·c++·编辑器
embedded_w1 小时前
U8G2在PC端模拟(C语言版本)
c语言
梁下轻语的秋缘2 小时前
每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)
c++·算法·蓝桥杯
CODE_RabbitV2 小时前
【深度强化学习 DRL 快速实践】逆向强化学习算法 (IRL)
算法
虾球xz2 小时前
游戏引擎学习第244天: 完成异步纹理下载
c++·学习·游戏引擎