C++实现商店促销活动最优支付金额计算
### 🍭思路分析 本题需要根据两种不同的促销方案,计算出小明购买价格总和为 `p` 元的物品时,最少需要支付的金额。我们可以先分别计算出两种方案下需要支付的金额,然后比较这两个金额,取较小值作为最终结果。 ### 💻代码实现 ```cpp #include <iostream> #include <iomanip> using namespace std; int main() { int x, y, n, p; // 读取输入 cin >> x >> y >> n >> p; // 计算第一种方案的支付金额 double price1 = p; if (p >= x) { price1 = p - y; } // 计算第二种方案的支付金额 double price2 = p * (n / 10.0); // 比较两种方案的支付金额,取较小值 double min_price = (price1 < price2) ? price1 : price2; // 输出结果,保留两位小数 cout << fixed << setprecision(2) << min_price << endl; return 0; } ``` ### 📝代码解释 1. **输入读取**:使用 `cin` 读取四个正整数 `x`, `y`, `n`, `p`,分别表示满减的金额门槛、满减的优惠金额、折扣的折数和商品的总价。 2. **第一种方案计算**:如果商品总价 `p` 大于等于满减金额门槛 `x`,则使用满减优惠,支付金额为 `p - y`;否则,支付金额为 `p`。 3. **第二种方案计算**:直接打 `n` 折,支付金额为 `p * (n / 10.0)`。 4. **比较并输出结果**:比较两种方案的支付金额,取较小值作为最终结果,并使用 `fixed` 和 `setprecision(2)` 保留两位小数输出。 ### 🚀开发建议 - **输入验证**:在实际应用中,应该对输入的 `x`, `y`, `n`, `p` 进行验证,确保它们符合题目要求(如 `1 ≤ y < x`,`1 ≤ n < 10`),避免出现不符合逻辑的输入导致程序出错。 - **代码复用**:如果后续有类似的促销活动计算需求,可以将计算两种方案支付金额的逻辑封装成函数,提高代码的复用性。 - **异常处理**:可以添加对输入异常的处理,例如输入不是整数或者输入为负数的情况,增强程序的健壮性。 ### 📚学习资源 - **C++ 官方文档**:https://en.cppreference.com/w/ ,提供了 C++ 语言的详细文档和参考资料。 - **《C++ Primer》**:经典的 C++ 学习书籍,适合初学者和进阶者。 ######[AI写代码神器 | 668点数解答 | 2026-08-30 13:14:04]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)571
- Python代码:简化网友国度货币系统,求解最小货币种数(字节豆包 | 529点数解答 | 2025-12-13 10:29:25)123
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)484
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)191
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)171
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)106
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)99
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)362
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)334
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)621
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)490
- Vue.js 与 Matter.js 碰撞:轻松实现物理模拟全攻略 (讯飞星火 | 522点数解答 | 2024-05-29 22:26:06)525