C++ 竞赛入门

运算符

运算符

本节学会什么

  • 使用算术、比较、逻辑和复合赋值运算符
  • 区分整数除法与取余
  • 用括号明确计算顺序

为什么需要它

变量只是保存数据,运算符才让数据发生计算和比较。之后的条件、循环、数组下标和几乎所有 OJ 题目都会反复使用这些基本运算。

最小可运行示例

#include <iostream>

int main() {
    int total_minutes;
    std::cin >> total_minutes;

    int hours = total_minutes / 60;
    int minutes = total_minutes % 60;
    std::cout << hours << ' ' << minutes << '\n';
    return 0;
}

输入 125 时,输出 2 5/ 得到整数商,% 得到余数。

关键过程与易错点

类别 运算符 例子
算术 + - * / % 17 % 52
比较 == != < <= > >= a == b 的结果是 bool
逻辑 `! &&
复合赋值 += -= *= /= %= sum += x 等价于 sum = sum + x

最容易错的三件事:

  1. = 是赋值,== 才是比较。
  2. 两个 int 相除会丢掉小数部分,例如 5 / 22
  3. 不确定优先级时就加括号。(a + b) * c 比依赖记忆更可靠。

++-- 会直接修改变量。初学阶段优先写 i += 1,它更容易看出发生了什么。

动手检查

读入一个非负整数秒数,输出它包含的分钟数和剩余秒数。再用 total / 60.0 输出分钟的真实小数值,比较两种除法结果。

立即练习

难度 题目 题解 训练目标
基础 洛谷 P1421:小玉买文具 题解 使用加、乘、整除完成单位换算。
巩固 洛谷 P5708:三角形面积 题解 用括号组织公式,处理 double 计算。
挑战 洛谷 P5707:上学迟到 题解 将向上取整、时间换算和取余组合起来。