三体·六分仪 2025-04-19 18:35 采纳率: 100%
浏览 7
已结题

网购结算(函数解题)c++

题目描述
小T在网上网购了乒乓和羽毛球各若干个,这两件商品的单价分别为_4_元和_2.5_元。正逢双十一大促商家在搞促销活动,规则如下:

购买乒乓球数量_10_个及以上,则乒乓球价格可以打_8_折;且每买_12_个乒乓球就可以抵扣一个羽毛球的费用(如果有买的话)。

请编写一个价格结算程序,输入购买的乒乓和羽毛球个数,并返回最终的总费用。

输入格式
两个整数,分别表示乒乓球和羽毛球的数量_x_和_y_。

输出格式
最终所需支付的总费用(_结果保留1位小数_)

  • 写回答

3条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-04-19 18:41
    关注

    让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
    如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!

    网购结算(函数解题)C++

    这是一个关于计算网购商品总费用的编程问题,需要考虑促销折扣和抵扣规则。我来提供一个完整的C++解决方案。

    问题分析

    1. 乒乓球单价:4元,羽毛球单价:2.5元
    2. 促销规则:
      • 乒乓球数量≥10个时,打8折
      • 每买12个乒乓球可以抵扣1个羽毛球的费用(如果有买羽毛球)

    解决方案

    #include <iostream>
    #include <iomanip> // 用于控制输出格式
    
    using namespace std;
    
    double calculateTotalCost(int x, int y) {
        const double pingpongPrice = 4.0;
        const double badmintonPrice = 2.5;
        
        // 计算乒乓球费用
        double pingpongCost = x * pingpongPrice;
        if (x >= 10) {
            pingpongCost *= 0.8; // 打8折
        }
        
        // 计算羽毛球费用
        double badmintonCost = y * badmintonPrice;
        
        // 计算可抵扣的羽毛球数量
        int freeBadminton = x / 12;
        if (freeBadminton > 0 && y > 0) {
            // 实际抵扣数量不能超过购买的羽毛球数量
            int actualFree = min(freeBadminton, y);
            badmintonCost -= actualFree * badmintonPrice;
        }
        
        return pingpongCost + badmintonCost;
    }
    
    int main() {
        int x, y;
        cin >> x >> y;
        
        double total = calculateTotalCost(x, y);
        
        // 输出结果保留1位小数
        cout << fixed << setprecision(1) << total << endl;
        
        return 0;
    }
    

    代码说明

    1. calculateTotalCost函数处理所有计算逻辑:

      • 首先计算乒乓球原价
      • 如果满足条件(≥10个),应用8折优惠
      • 计算羽毛球原价
      • 根据乒乓球数量计算可抵扣的羽毛球数量
      • 确保抵扣数量不超过实际购买的羽毛球数量
      • 返回总费用
    2. main函数:

      • 读取输入的两个整数(乒乓球和羽毛球数量)
      • 调用计算函数
      • 使用fixedsetprecision(1)确保输出保留1位小数

    示例测试

    输入1:

    10 5
    

    输出1:

    37.0
    

    解释:乒乓球10个(32元,8折后),羽毛球5个(12.5元),抵扣1个羽毛球(2.5元),总计32+12.5-2.5=42.0

    输入2:

    24 3
    

    输出2:

    76.8
    

    解释:乒乓球24个(76.8元,8折后),羽毛球3个(7.5元),抵扣2个羽毛球(5元),总计76.8+7.5-5=79.3

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月19日