Appearance
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.333332. 取模运算符 %:OI 赛场的神器
% 在数学里叫百分号,但在 C++ 中,它读作取模(求余数)。 10 % 3 的意思是:10 除以 3,商 3 余 1。所以结果是 1。
💡 取模运算在算法竞赛中的三大神级用法:
- 判断奇偶性:
x % 2。如果结果是 0,说明x是偶数;如果是 1,说明是奇数。- 提取数字的最后一位:
x % 10。比如153 % 10结果是 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` 会得到什么?*