习题3-3 出租车计价 (15 point(s))
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为3公里,起步费10元;
- 超起步里程后10公里内,每公里2元;
- 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
- 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:
2.6 2
结尾无空行
输出样例1:
10
结尾无空行
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
参考答案:
答案1
#include<stdio.h>
int main()
{
float li,time,pay=0;
scanf("%f %f",&li,&time);
/*
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
*/
if(3>=li) pay=10;
else if(10>=li) pay=10+(li-3)*2;
else pay=10+7*2+(li-10)*3;
if(5<=time) pay+=(int)time/5*2;
//注意! 题干中的"不足5分钟则不收费":其中的精度计算存在在问题.
//因为涉及到除法,很可能出现小数,如果用高精度的浮点数计算,数据会更准确,
//但是这里无法通过测试...............只能舍去小数部分再计算.......
printf("%.0f",pay);
}
?答案2(部分无法通过测试)(数据精度更高)
![](https://img-blog.csdnimg.cn/20210803223515682.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIzMzY1OTY=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210803224210757.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIzMzY1OTY=,size_16,color_FFFFFF,t_70)
?
|