生活中的价格计算,是 GESP 一级必考高频题型,几乎每次考试都出现!只要掌握先算总价、再比较、最后算差额的思路,这类题百分百得分!
一、题目描述
开学了,小明来到文具店选购文具。签字笔 2 元一支,买 X 支;记事本 5 元一本,买 Y 本;直尺 3 元一把,买 Z 把。小明手里有 Q 元钱。请判断钱够不够,并输出结果。
输入
输入 4 行:第一行:正整数 X(签字笔数量,1≤X≤10)第二行:正整数 Y(记事本数量,1≤Y≤10)第三行:正整数 Z(直尺数量,1≤Z≤10)第四行:正整数 Q(小明手里的钱)
输出
输出 2 行:
钱够 → 第一行输出 "Yes",第二行输出剩下的钱 钱不够 → 第一行输出 "No",第二行输出缺少的钱
输入样例 1
1
1
1
20
输出样例 1
Yes
10
输入样例 2
1
1
1
5
输出样例 2
No
5
二、解题思路分析
这道题是标准生活计算 + 判断题型,逻辑非常固定,三步搞定:
- 算总价
总价 = 签字笔数量 ×2 + 记事本数量 ×5 + 直尺数量 ×3 - 做比较
拿手里的钱 Q 和 总价 比大小 - 出结果
Q ≥ 总价 → 够钱,输出 Yes + 剩余钱Q < 总价 → 不够,输出 No + 缺少的钱
思路清晰、步骤固定,是 GESP 一级必拿分题!
三、完整可运行代码
#include<stdio.h>intmain(){int X, Y, Z, Q;// 分4行输入数量和钱数scanf("%d", &X);scanf("%d", &Y);scanf("%d", &Z);scanf("%d", &Q);// 计算总价格int total = X * 2 + Y * 5 + Z * 3;// 判断钱够不够if (Q >= total) {printf("Yes\n");printf("%d", Q - total);} else {printf("No\n");printf("%d", total - Q);}return 0;}
四、代码讲解
定义 4 个变量:X、Y、Z 存数量,Q 存钱 分 4 次输入,完全符合题目要求 一行公式算出所有文具的总价 if 判断: 钱够:输出 Yes + 剩余钱 钱不够:输出 No + 缺多少钱 格式规范、代码简短,考场直接套用不出错
五、学习小技巧
所有购物计算、价格判断题目,记住万能模板:先算总价 → 再比较大小 → 最后算差额掌握这个逻辑,GESP 一级所有生活应用题直接秒解!
夜雨聆风