C++ 计算商品总价:折扣与舍尾处理

假设可多一共购买了 n 种类型的商品,第 i 种商品的单价为 ai 元,买了 bi​ 件,最后打八五折,并且舍去多出的小于一角的零头。你能帮他算算实际要付的钱数吗?

输入描述

第一行一个正整数 n,表示商品的种类数。

下面 n 行,每行一个两位小数 ai 和一个整数 bi​,用空格隔开,分别表示第 i 种商品的单价和购买量。

注意,输入中不会省略小数点后的零。

输出描述

仅一行,一个一位小数,表示可多在打折并去分后要付的实际元数。注意,即使小数点后一位是 0,也要输出。

样例 1

输入

3
3.00 2
17.95 1
0.10 1

输出

20.4

C++ 代码

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    double totalCost = 0;
    for (int i = 0; i < n; i++) {
        double price;
        int quantity;
        cin >> price >> quantity;
        
        totalCost += price * quantity;
    }
    
    totalCost *= 0.85; // Apply 15% discount
    totalCost = floor(totalCost * 10) / 10; // Round down to one decimal place
    
    cout << fixed << setprecision(1) << totalCost << endl;
    
    return 0;
}

代码说明

  1. 首先读取商品种类数 n;
  2. 使用一个循环,读取每一种商品的单价和购买量,将购买总额累加到 totalCost 中;
  3. 计算打折后的总额 totalCost,乘以 0.85;
  4. 使用 floor 函数将 totalCost 乘以 10 并向下取整,再除以 10,舍去多余的小数位;
  5. 使用 fixed 和 setprecision 函数设置输出为一位小数,并输出 totalCost。

原文地址: https://www.cveoy.top/t/topic/pibY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录