⚙️ C++

算术运算在 C++ 中

这是什么?为什么需要它?

想象一下,你是一家商店的收银员。顾客来了,你要把商品价格加起来,减去折扣,用单价乘以数量,在朋友之间分摊总金额。所有这些就是算术运算。在编程中,它们的运作方式完全相同:计算机能够对数字进行加、减、乘、除。没有这些,你就无法编写计算器、游戏或工资计算程序。

为什么需要了解这个?即使你想编写一个简单的程序,询问用户的年龄并告诉他还有多少年退休——你也会用到减法。想计算聚会需要多少披萨?需要除法。如果你在编写一个角色移动的游戏——那里面全是坐标的加法和减法。简而言之,算术是基础,没有它寸步难行。

语法和代码示例

在 C++ 中,算术运算看起来几乎和数学中一样。以下是基本符号:

  • + — 加法
  • - — 减法
  • * — 乘法(星号,不是叉号)
  • / — 除法(斜杠)
  • % — 取模(例如,7 % 3 = 1,因为 7 除以 3 余 1)

让我们看一些例子。代码写在 main() 内部,结果通过 cout 输出到屏幕。

#include <iostream>
using namespace std;

int main() {
    // 示例 1: 加法
    int a = 10;
    int b = 5;
    int sum = a + b;  // 将 a 和 b 相加,结果存入 sum
    cout << "Sum: " << sum << endl;  // 输出: Sum: 15

    // 示例 2: 减法
    int diff = a - b;  // 从 a 中减去 b
    cout << "Difference: " << diff << endl;  // 输出: Difference: 5

    // 示例 3: 乘法
    int prod = a * b;  // a 乘以 b
    cout << "Product: " << prod << endl;  // 输出: Product: 50

    // 示例 4: 除法
    int quot = a / b;  // a 除以 b
    cout << "Quotient: " << quot << endl;  // 输出: Quotient: 2
    // 注意: 如果数字是整数,结果也是整数!10 / 3 = 3,而不是 3.333

    // 示例 5: 取模
    int rem = 10 % 3;  // 10 除以 3,余数为 1
    cout << "Remainder: " << rem << endl;  // 输出: Remainder: 1

    return 0;
}

请注意:在示例 4 中,我们将 10 除以 5 得到 2。但如果我们将 10 除以 3,会得到 3,而不是 3.333。因为 int 是整数,小数部分会被丢弃。要获得小数结果,需要使用 double(浮点数)。

#include <iostream>
using namespace std;

int main() {
    // 浮点数示例
    double x = 10.0;
    double y = 3.0;
    double result = x / y;  // 现在除法将是精确的
    cout << "Result: " << result << endl;  // 输出: Result: 3.33333

    // 可以混合整数和浮点数
    int apples = 7;
    double price = 2.5;
    double total = apples * price;  // 7 * 2.5 = 17.5
    cout << "Total cost: " << total << endl;

    return 0;
}

另一个重要点:运算顺序。和数学中一样,先乘除,后加减。如果你想改变顺序,请使用括号。

#include <iostream>
using namespace std;

int main() {
    int a = 2;
    int b = 3;
    int c = 4;

    // 无括号:先乘法,后加法
    int res1 = a + b * c;  // 2 + 12 = 14
    cout << "Without parentheses: " << res1 << endl;

    // 有括号:先加法,后乘法
    int res2 = (a + b) * c;  // 5 * 4 = 20
    cout << "With parentheses: " << res2 << endl;

    return 0;
}

与 Python 的比较

如果你已经尝试过 Python,你会注意到那里的算术非常相似。但有几个区别。

在 Python 中:

  • 同样的加法 +、减法 -、乘法 *、除法 /。
  • 但 Python 中的除法总是返回小数结果!10 / 3 会是 3.3333,即使数字是整数。
  • 要获得整数除法(像 C++ 中那样),需要写 //(两个斜杠)。例如,10 // 3 会得到 3。
  • 取模也是 %,和 C++ 一样。

以下是相同代码在 Python 中的样子:

# Python
a = 10
b = 3

# 普通除法——小数
print(a / b)  # 3.3333333333333335

# 整数除法(像 C++ 中那样)
print(a // b)  # 3

# 取模
print(a % b)  # 1

# 其他都一样
print(a + b)  # 13
print(a - b)  # 7
print(a * b)  # 30

主要区别:在 C++ 中,你需要提前声明变量类型(int 或 double),而在 Python 中类型是自动推断的。但在 C++ 中,你自己决定是想要整数还是小数——这提供了更多的控制。

新手常见错误

以下是刚开始学习的人最常出错的地方:

  1. 忘记分号 — 在 C++ 中,每条语句以 ; 结尾。如果没有,编译器会报错。
  2. 混淆 = 和 == — = 是赋值(存入值),而 == 是比较(是否相等?)。在算术中我们只使用 =。
  3. 用整数除法却期望小数结果 — 如果两个数都是 int,结果也是 int。想要小数,至少让一个数是 double。
  4. 忘记运算顺序 — 2 + 3 * 4 是 14,而不是 20。如果怀疑,请使用括号。
  5. 除以零 — 不能除以零!程序会出错崩溃。始终检查除数是否不为零。