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;
相关推荐
桃酥4034 分钟前
20、移动语义有什么作用,原理是什么【中高频】
c++
闻缺陷则喜何志丹5 分钟前
【二分查找、滑动窗口】P10389 [蓝桥杯 2024 省 A] 成绩统计|普及+
c++·算法·蓝桥杯·二分查找·滑动窗口·洛谷·成绩
威哥爱编程1 小时前
C语言操作MySQL从入门到精通
c语言·数据库·mysql
乔冠宇1 小时前
蓝桥杯算法——铠甲合体
算法·职场和发展·蓝桥杯
商bol451 小时前
算阶,jdk和idea的安装
数据结构·c++·算法
迷迭所归处1 小时前
C语言 —— 愿文明如薪火般灿烂 - 函数递归
c语言·开发语言·算法
yyytucj1 小时前
C/C++通过SQLiteSDK增删改查
c语言·jvm·c++
柠檬鲨_4 小时前
C语言100天练习题【记录本】
c语言·数据结构·算法
float_六七4 小时前
二叉树三种遍历方式——前序、中序、后序(C++)
开发语言·c++·算法
邦之彦9 小时前
C++:四大强制类型转换
开发语言·c++·static_cast·const_cast·dynamic_cast·reinterpretcast