文具店的折扣

分析问题(给五年级学生讲解)

花花去文具店买文具,遇到了一个简单的数学问题。让我们一步步理解:

  1. 买的东西:花花买了1支笔和1块橡皮。笔的价格是 ( x ) 元,橡皮的价格是 ( y ) 元。
  2. 总原价:先算出笔和橡皮一共多少钱。很简单,就是 ( x + y ) 元。
  3. 打折活动:文具店今天打9折。打9折的意思是,只付原价的90%。例如:
  • 如果原价是10元,打9折后就是 ( 10 * 0.9 = 9 ) 元。
  • 所以,花花实际要付的钱是 ( (x + y) * 0.9 ) 元。
  1. 付钱和找零:花花给了老板 ( n ) 元(题目说了 ( n ) 一定比原价 ( x + y ) 多或相等,所以钱够用)。老板需要找回多余的钱:
  • 找回的钱 = 花花付的钱 – 实际要付的钱 = ( n – (x + y) * 0.9 )。
  1. 输出要求:最后,老板找回的钱要保留一位小数。例如,2.3 元就直接写 2.3;如果是 2 元,要写成 2.0。

举个样例子(题目给的):

  • 输入:笔 ( x = 2 ) 元,橡皮 ( y = 1 ) 元,花花付了 ( n = 5 ) 元。
  • 计算:
  • 总原价:( 2 + 1 = 3 ) 元。
  • 打9折:( 3 * 0.9 = 2.7 ) 元(实际付这么多)。
  • 找回的钱:( 5 – 2.7 = 2.3 ) 元。
  • 输出:2.3(保留一位小数)。

建立模型

我们可以把问题变成一个数学公式:

  • 找回的钱 = ( n – (x + y) * 0.9 )
  • 计算后,结果四舍五入保留一位小数。

编写程序(C++)

下面是用 C++ 写的程序。程序会读取三个整数(笔价、橡皮价、付的钱),计算找回的钱,并输出保留一位小数。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int x, y, n;  // 定义变量:笔价、橡皮价、付的钱
    cin >> x >> y >> n;  // 输入三个整数
    double total = x + y;  // 总原价
    double discounted = total * 0.9;  // 打9折后的价格  discounted(折扣)
    double change = n - discounted;  // 找回的钱
    // 输出找回的钱,保留一位小数(如2.3或2.0)
    cout << fixed << setprecision(1) << change << endl;
    return 0;
}

保存 编译 运行

代码说明

  • cin >> x >> y >> n;:输入笔的价格、橡皮的价格和花花付的钱。
  • double total = x + y;:计算总原价。
  • double discounted = total * 0.9;:计算打9折后的价格。
  • double change = n - discounted;:计算找回的钱。
  • cout << fixed << setprecision(1) << change << endl;:输出找回的钱,保留一位小数(如输入 2 1 5,输出 2.3)。