Skip to content

5. 运算符与表达式:让电脑算数

前置学习:标准输入 (cin)

让计算机进行数学计算,是编程最基础的功能。在 C++ 中,参与运算的符号叫运算符,由变量、数字和运算符组成的算式叫表达式

1. 基础算术运算符:警惕除法的陷阱

+、减 -、乘 * 和数学里一模一样。但在 C++ 中,除法 / 暗藏玄机

cpp
int a = 10;
int b = 3;
cout << a / b << endl;

运行结果是 3,而不是 3.3333。

⚠️ 竞赛核心机制:整数除法 在 C++ 中,两个整数相除,结果一定还是整数,多余的小数部分会被直接“一刀切”丢弃,绝不会四舍五入。 如果想得到精确的小数结果,参与除法的数字中至少要有一个是浮点型(double)。

cpp
// 竞赛常用技巧:乘上 1.0 强行把整数变成浮点数
cout << 1.0 * a / b << endl; // 结果就是 3.33333

2. 取模运算符 %:OI 赛场的神器

% 在数学里叫百分号,但在 C++ 中,它读作取模(求余数)10 % 3 的意思是:10 除以 3,商 3 余 1。所以结果是 1。

💡 取模运算在算法竞赛中的三大神级用法:

  1. 判断奇偶性x % 2。如果结果是 0,说明 x 是偶数;如果是 1,说明是奇数。
  2. 提取数字的最后一位x % 10。比如 153 % 10 结果是 3。
  3. 控制范围:任何数 % n,结果永远在 0 到 n-1 之间波动。

注意:% 运算符的左右两边必须都是整数,不能对小数取模。

3. 自增与快捷赋值:程序员的偷懒哲学

写代码时经常遇到“变量自己加上一个数”的情况。比如,玩家吃了血包,血量增加 50。

普通写法:

cpp
hp = hp + 50; // 把 hp+50 的结果,重新放回 hp 盒子里

快捷写法:

cpp
hp += 50;     // 效果完全等同于上面那句

同理,还有 -=, *=, /=, %=

极致偷懒:自增 ++ 和 自减 -- 当只需要给自己加 1 或者减 1 时,可以直接写:

cpp
int count = 0;
count++; // 相当于 count = count + 1 或 count += 1

在接下来的“循环”章节中,++ 会成为我们最形影不离的好朋友。

4. 动手实践

md
1. 打开左下角的“💻 运行代码”沙盒。
2. 声明一个三位数的整数 `int n = 789;`
3. 利用 `/``%` 运算符,把这个数字的“百位”、“十位”、“个位”分别提取出来并打印在屏幕上。
   *提示:思考一下 `n / 100` 会得到什么?*
💻 运行代码

C++ 在线评测沙盒

📥 标准输入 (cin):
📤 终端输出 (cout):