备战大晨7月 GESP C++ 1级(三):分支结构,拿下 5.3 电影票

备战大晨7月 GESP C++ 1级(三):分支结构,拿下 5.3 电影票
强仔备战大晨7月 GESP C++ 1级(三):分支结构,拿下 5.3 电影票
前两篇(一)(二)打完地基:变量、cin、顺序结构都熟了。这一篇加一个关键的”转弯”——分支结构 if,并且直接拿下大晨目前学到的进度点:《一本通•编程启蒙C++版》3020练 5.3 电影票。
为什么需要”分支”
顺序结构是”一路直走”,但现实问题经常是:满足条件走 A,不满足走 B。
比如电影票:买得多有没有优惠?年龄够不够免票?这种”看情况”的逻辑,C++ 用 if 来表达。
if 的基本长相
1 | if (条件) { |
大晨第一反应是:”这不就是如果……否则……嘛,和说话一样!” 对,if 就是把日常的判断翻译成代码。
关系运算:怎么表达”大于/等于”
if 括号里放的是”条件”,靠关系运算符拼出来:
| 运算符 | 意思 | 例子 |
|---|---|---|
> |
大于 | age > 18 |
< |
小于 | price < 50 |
>= |
大于等于 | score >= 60 |
<= |
小于等于 | cnt <= 0 |
== |
等于 | a == b |
!= |
不等于 | a != b |
⚠️ 陪跑重点坑:判断相等是 ==(两个等号),不是 =(一个等号是赋值)。大晨第一次写 if (a = 5) 编译器没报错但逻辑全错, debug 了十分钟。这种坑早点踩,考试就不踩。
落地:5.3 电影票(实战)
书里 3020练 5.3 电影票,常见题意是这类(具体数字按书上的来,这里用典型版本讲思路):
电影票单价
p元,大晨带了n个人去看。如果总人数达到某个门槛(比如满 10 人)打 9 折,否则不打折。求总花费。
思路拆解:
- 读入人数
n和单价p; - 先算原价
n * p; - 用
if判断人够不够多,够了就乘 0.9(注意类型!); - 输出结果。
1 |
|
大晨跑了一遍:9 个人原价,10 个人立刻便宜一截,他乐了:”原来电影院的数学题是这么算的。”
书上那道”电影票”可能细节不同(比如儿童免票、会员价),但骨架永远是:读入 → 算原价 → if 判断优惠 → 输出。换数字不换逻辑,这就是 GESP 一级分支题的套路。
再加一点:逻辑运算
有时候条件不止一个,比如”年满 18 并且 是学生”才优惠,用 &&(并且);”会员 或者 满 10 人”优惠,用 ||(或者);”不是会员”用 !(取反)。
1 | if (age >= 18 && isStudent) { ... } // 并且 |
这块是 GESP 一级的进阶考点,先认识符号,后面刷题再熟。
小结(三)
起步篇(三)三件事:学会 if/else 分支、搞懂 == 和 = 的区别、用分支结构拿下 5.3 电影票。
到这篇为止,大晨已经把顺序 + 分支这两块 GESP 一级最核心的逻辑走通了。接下来就是循环(下个阶段),以及拿真题刷题巩固。
起步三篇到此收尾。后面我会按大晨学循环、刷真题的节奏继续更新这个系列,争取 9 月 GESP 一级稳稳拿下心心念念的路标。
本系列按《一本通•编程启蒙C++版》进度记录,当前学到 3020练 5.3 电影票。陪学经验仅代表我们家庭实践,不构成培训承诺。


