C++ 竞赛入门
变量
变量
本节学会什么
- 定义、初始化和修改变量
- 区分“变量名”“变量当前保存的值”和“表达式结果”
- 理解局部变量只在自己的代码块中可用
为什么需要它
输入的数据、计算过程和最终答案都需要名字。变量让程序能保存会变化的状态,而不是把每一步都写成不可修改的常量。
最小可运行示例
#include <iostream>
int main() {
int apples = 3;
apples = apples + 2;
apples += 1;
std::cout << apples << '\n';
return 0;
}
输出是 6。= 在这里表示“把右边算出的值存进左边变量”,不是数学中的“相等”。
关键过程与易错点
- 先定义再使用:
int score;创建变量,score = 100;才给它赋值。 - 尽量在定义时初始化:
int sum = 0;比int sum;更安全。 - 变量名由字母、数字和下划线组成,不能以数字开头,也不能使用关键字,例如
int。 - 一对
{}形成代码块。在块中定义的变量离开块后就不存在:
#include <iostream>
int main() {
int outside = 1;
{
int inside = 2;
std::cout << outside + inside << '\n';
}
// std::cout << inside; // 错误:inside 已离开作用域
}
同名变量会造成阅读困难。即使语法允许,也不要随意遮蔽外层变量。
动手检查
读入一个整数 n,定义变量 answer,先令它等于 n,再依次加上 10、减去 3、乘以 2 并输出。每一步都用一条赋值语句完成。
立即练习
| 难度 | 题目 | 题解 | 训练目标 |
|---|---|---|---|
| 基础 | 洛谷 P5703:苹果采购 | 题解 | 用变量保存两个输入量和计算结果。 |
| 巩固 | 洛谷 P1421:小玉买文具 | 题解 | 用清晰的变量名组织金额换算和结果。 |
| 挑战 | 洛谷 P5707:上学迟到 | 题解 | 把“路程、速度、准备时间、出发时间”拆成多个状态变量。 |