C++ 入门:从读懂题目到独立完成练习
初学编程,不必一开始就记住很多算法名。先把一件小事说明白,再让计算机按你的步骤完成它。
先看一道具体的小题
任务:输入三个整数,输出它们的和。
输入 2 4 7,输出应为 13。这里要输出的是一个总和,不是把三个数字分别打印出来。
先用自己的话说出三件事:程序会读到什么?我们要做什么处理?最后应当输出什么?这就是“输入—处理—输出”的基本模型。遇到更长的题目,也可以先把故事压缩成这三句话。
第一步:先手算,再写代码
列出几组小数据,能帮助你检查自己有没有读错题。除了 2 4 7,还可以试一试三个数都是零,以及存在负数的情况。例子不是证明,但它能暴露“只想到正数”这样的遗漏。
| 输入 | 预期输出 | 检查什么 |
|---|---|---|
| 2 4 7 | 13 | 普通情况 |
| 0 0 0 | 0 | 零值 |
| -2 4 -7 | -5 | 负数 |
第二步:把处理过程说清楚
设读到的三个数分别是 a、b、c。我们要求的结果就是 a + b + c。这里没有条件选择,也没有重复操作,因此可以直接按照顺序读入、计算、输出。
#include <iostream>
using namespace std;
int main() {
long long a, b, c;
cin >> a >> b >> c;
cout << a + b + c << '\n';
return 0;
}这段代码假设三个数和它们的和都在 long long 的表示范围内。类型不是越复杂越好,关键是能够覆盖题目给出的数据范围。
第三步:再把同一个想法推广
如果输入的不再是固定的三个数,而是 n 个数,你会怎样修改?先尝试五个数:每读到一个数,就把它加进已有的总和。重复的是同一件事,这时才有了使用循环的理由。
检查循环是否正确,可以观察一个不变量:读完前 k 个数后,变量 sum 恰好等于这 k 个数的总和。起初没有读入任何数,总和为零;每次加入新读到的数,不变量仍然成立;读完全部数时,sum 就是答案。
推荐的入门顺序
- 顺序结构:读入、计算和输出,理解变量与表达式。
- 选择结构:当不同条件需要不同处理时,学习分支。
- 循环结构:找到重复的操作,明确起点、终点和更新方式。
- 数组与字符串:需要保留多个数据时,再学习合适的存储方式。
- 函数与简单算法:把重复的处理抽成模块,练习枚举、排序等方法。
每次练习,留下三句话
不要只记录“通过了”。试着写下:我如何把题目转成计算任务?我用什么理由判断方法正确?如果数据或条件改变,原方法还成立吗?这些记录比复制一段答案更有助于下一次独立解题。