)
摘要本文是PTA编程题分段计算居民水费的题解涵盖题目描述、输入输出格式及C语言实现展示分段函数计算方法。题目描述为鼓励居民节约用水自来水公司采取按用水量阶梯式计价的办法居民应交水费y元与月用水量x吨相关当x不超过15吨时y4x/3超过后y2.5x−17.5。请编写程序实现水费的计算。输入格式输入在一行中给出非负实数x。输出格式在一行输出应交的水费精确到小数点后2位。输入样例1216输出样例16.0022.50解题思路核心问题分析本题是一个典型的分段函数求值问题。核心在于根据用水量x的不同区间选择对应的水费计算公式进行计算。水费与用水量的关系分为两个阶段阶段一平价水用水量不超过15吨时采用较低单价 y 4x/3阶段二阶梯加价水用水量超过15吨时采用较高单价 y 2.5x - 17.5算法原理说明使用条件分支结构if-else实现分段逻辑判断读取输入的用水量x判断x与临界值15的大小关系根据判断结果选择对应的计算公式输出保留两位小数的计算结果具体计算步骤输入用水量x吨若 x ≤ 15水费 y 4 × x / 3若 x 15水费 y 2.5 × x - 17.5将水费y按%.2f格式输出精确到小数点后2位验证样例样例1x12 ≤ 15y 4×12/3 16.00 ✓样例2x16 15y 2.5×16 - 17.5 40 - 17.5 22.50 ✓代码部分实现#includeiostreamusingnamespacestd;intmain(void){doublex,y;cinx;if(x15){y4*x/3;}else{y2.5*x-17.5;}printf(%.2f\n,y);return0;}代码流程说明头文件引入与命名空间声明#include iostream引入标准输入输出流头文件支持cin和cout操作using namespace std;声明使用std命名空间避免每次写std::前缀主函数入口int main(void)程序主函数入口void表示无参数变量定义double x, y;定义两个双精度浮点型变量x存储输入的月用水量吨y存储计算得到的应交水费元数据输入cin x;从标准输入读取一个非负实数存入变量x分段计算逻辑if (x 15)判断用水量是否不超过15吨条件为真时执行y 4 * x / 3;按平价水公式计算else用水量超过15吨的情况执行y 2.5 * x - 17.5;按阶梯加价水公式计算结果输出printf(%.2f\n, y);使用printf格式化输出水费%.2f浮点数保留2位小数\n输出换行符程序结束return 0;返回0表示程序正常结束代码流程图是否开始引入头文件和命名空间定义变量x和y输入用水量xx 15?y 4 * x / 3y 2.5 * x - 17.5输出y保留两位小数程序结束解题流程图x 15 平价水x 15 加价水开始读取用水量x判断x的区间公式: y 4x/3公式: y 2.5x - 17.5计算得到水费y格式化输出y保留两位小数结束