#GESP1MN04. 小明的购物优惠

小明的购物优惠

GESP C++ 一级模拟题

题目名称:小明的购物优惠

知识点

  • 条件判断(if-else if-else语句)
  • 数学计算(乘法、百分比)
  • 浮点数处理
  • 格式化输出

题目描述

小明去商店购物,商店正在举办优惠活动!

优惠规则:

  • 如果购买金额 ≥ 200元,享受 8折 优惠(打8折)
  • 如果购买金额 ≥ 100元且 < 200元,享受 9折 优惠(打9折)
  • 如果购买金额 ≥ 50元且 < 100元,享受 95折 优惠(打95折)
  • 如果购买金额 < 50元不打折(原价)

请根据小明的购买金额,计算他实际需要支付的金额。


输入格式

一行,包含一个浮点数 amount,表示小明的购买金额(0 ≤ amount ≤ 1000)

输出格式

一行,输出小明实际需要支付的金额,保留2位小数


样例输入1

250.00

样例输出1

200.00

样例1说明: 购买金额250元 ≥ 200元,享受8折优惠 实际支付:250 × 0.8 = 200.00元


样例输入2

150.00

样例输出2

135.00

样例2说明: 购买金额150元在100-200元之间,享受9折优惠 实际支付:150 × 0.9 = 135.00元


样例输入3

80.00

样例输出3

76.00

样例3说明: 购买金额80元在50-100元之间,享受95折优惠 实际支付:80 × 0.95 = 76.00元


样例输入4

30.00

样例输出4

30.00

样例4说明: 购买金额30元 < 50元,不打折 实际支付:30.00元(原价)


样例输入5

200.00

样例输出5

160.00

样例5说明: 购买金额200元,刚好达到8折优惠标准 实际支付:200 × 0.8 = 160.00元


提示

  1. 注意边界值的处理(200、100、50)
  2. 使用多个if-else if-else语句实现多分支判断
  3. 注意浮点数的计算和输出格式
  4. 使用 printf("%.2f\n", value)cout << fixed << setprecision(2) << value 保留2位小数
  5. 打折计算:原价 × 折扣率

考察知识点总结

  • ✅ 多分支条件判断(if-else if-else)
  • ✅ 数学计算(百分比、折扣)
  • ✅ 浮点数处理
  • ✅ 格式化输出(保留小数位数)
  • ✅ 边界值处理

难度评估

难度: ⭐⭐⭐☆☆(中等)

适合: GESP C++ 一级考生练习


数学知识点

  • 百分比计算:打8折 = 原价 × 0.8 = 原价 × 80%
  • 折扣率:8折 = 0.8,9折 = 0.9,95折 = 0.95
  • 区间判断:注意边界值的归属(≥ 和 < 的使用)