【ZZULIOJ】1102: 火车票退票费计算(函数专题) | 您所在的位置:网站首页 › zzulioj1115答案 › 【ZZULIOJ】1102: 火车票退票费计算(函数专题) |
ZZULIOJ题解
1102: 火车票退票费计算(函数专题)
题目描述 2013年起,火车票退票费比例下调:票面乘车站开车时间前48小时以上的按票价5%计退票费。同时,车票退票费的计算方法不再四舍五入到元为单位,而是以5角为单位:尾数小于0.25元的舍去、不小于0.25元且小于0.75元的计为0.5元、不小于0.75元的进为1元。编写一个函数,计算退票费,假定退票时间举例开车时间在48小时以上。函数原型如下: double CancelFee(double price); 本题如果是C/C++代码提交,只需要提交CancelFee函数的定义部分,提交其它内容,编译出错。 输入 输入一个实数,表示火车票票面价格。 输出 输出一个实数,表示退票费,结果保留一位小数。 样例输入 106样例输出 5.5其实函数专题难度并不大,然后更多是熟悉函数用法和以前问题的解决是否有新思路。另外我觉得个人来看,函数实际上就是把一个程序分组模块化,这样从结构上对整个程序有了一个处理。使得整个主函数不是那么冗杂。(纯属个人观点) 代码 double CancelFee(double price) { double x,y;//参数x用来小数部分判断和参数y继续整数部分保留 x=0.05*price;//5%的退费 y=(int)(0.05*price);//先强转只看整数部分 while(x>=1)//这里对x进行处理,将整数部分处理掉 { x--; } if(0.25>x&&x>=0) x=0;//舍去 else if(0.75>x&&x>=0.25) x=0.5;//取0.5 else if(1>x&&x>=0.75) x=1;//进位 return y+x;//返回结果x+y } |
CopyRight 2018-2019 实验室设备网 版权所有 |