C++ 计算商品总价:折扣与舍尾处理
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;
}
代码说明
- 首先读取商品种类数 n;
- 使用一个循环,读取每一种商品的单价和购买量,将购买总额累加到 totalCost 中;
- 计算打折后的总额 totalCost,乘以 0.85;
- 使用 floor 函数将 totalCost 乘以 10 并向下取整,再除以 10,舍去多余的小数位;
- 使用 fixed 和 setprecision 函数设置输出为一位小数,并输出 totalCost。
原文地址: https://www.cveoy.top/t/topic/pibY 著作权归作者所有。请勿转载和采集!