c++ 为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5,小数部分保留2位(使用round函数)。请编写程序实现水费的计算。
时间: 2024-09-27 20:16:03 浏览: 49
c++水费管理系统.zip
3星 · 编辑精心推荐
在C++中,你可以创建一个函数来实现这种阶梯式的水费计算,结合条件判断和`round`函数来达到小数部分的精确保留。这里是一个简单的示例:
```cpp
#include <iostream>
#include <cmath> // 引入math库,用于round函数
#include <iomanip> // 引入iomanip库,用于设置精度
// 函数定义,根据用水量计算水费
double calculateWaterBill(double x) {
if (x <= 15) { // 当用水量小于等于15吨
return static_cast<double>(4 * x / 3); // 四分之三的价格乘以x并四舍五入到两位小数
} else { // 当用水量大于15吨
double costWithoutDiscount = 2.5 * x - 17.5;
return round(costWithoutDiscount * 100) / 100.0; // 直接四舍五入到两位小数
}
}
int main() {
double monthlyWaterUsage;
std::cout << "请输入您的月用水量(吨): ";
std::cin >> monthlyWaterUsage;
double waterFee = calculateWaterBill(monthlyWaterUsage);
std::cout << "您的水费是: " << std::fixed << std::setprecision(2) << waterFee << " 元\n"; // 输出结果时固定小数点后两位
return 0;
}
```
在这个程序中,我们首先检查用水量是否超过15吨,然后分别计算两种情况下的水费。对于小于等于15吨的部分,我们直接按照比例计算;对于超过15吨的部分,先计算原价,再用`round`函数四舍五入到最接近的整数,然后除以100得到保留两位小数的结果。
阅读全文