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;
相关推荐
独正己身1 分钟前
代码随想录day4
数据结构·c++·算法
厂太_STAB_丝针1 小时前
【自学嵌入式(8)天气时钟:天气模块开发、主函数编写】
c语言·单片机·嵌入式硬件
我不是代码教父3 小时前
[原创](Modern C++)现代C++的关键性概念: 流格式化
c++·字符串格式化·流格式化·cout格式化
利刃大大3 小时前
【回溯+剪枝】找出所有子集的异或总和再求和 && 全排列Ⅱ
c++·算法·深度优先·剪枝
charlie1145141913 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
c语言·驱动开发·单片机·学习·教程·oled
子燕若水3 小时前
mac 手工安装OpenSSL 3.4.0
c++
*TQK*3 小时前
ZZNUOJ(C/C++)基础练习1041——1050(详解版)
c语言·c++·编程知识点
Rachela_z4 小时前
代码随想录算法训练营第十四天| 二叉树2
数据结构·算法
细嗅蔷薇@4 小时前
迪杰斯特拉(Dijkstra)算法
数据结构·算法
追求源于热爱!4 小时前
记5(一元逻辑回归+线性分类器+多元逻辑回归
算法·机器学习·逻辑回归