本题分为两个大情况,分别是晚上和白天,又分了三个小情况,分别是3km以内,3-12km,12km以外,只需要将每个情况分别讨论即可。
问题描述
某市出租车起步价3公里9.00元(含3公里),基本公里运价2.00元/公里,单程载客12公里以上时,超出12公里每公里加收公里运价50%的空驶补贴费;夜间计费23时至次日6时(含23时和6时),起步价增加1元,每公里运价加收0.3元。
例如:(1)乘车时间9点,里程2.5公里,应付车资=起步价,即:fee=9;
(2)乘车时间14点,里程15.6公里,应付车资=起步价+12公里内车费+超出12公里车费,即:
fee =9+(12-3)*2 +(15.6-12)*2*(1+0.5);
(3)乘车时间2点,里程11.3公里,应付车资=起步价+12公里内车费,即:fee=(9+1)+(11.3-3)*(2+0.3);
从键盘输入乘车时间与乘车的公里数,输出应付的车费。
输入说明
输入一个整数对应乘车时间(24小时制,0~23),一个实数对应乘车公里数,两个数之间用空格分隔。
输出说明
输出应付的车费,小数点后保留1位小数。
输入样例
2 23.1
输出样例
69.0
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int fee, time;
double km, money;
scanf("%d %lf", &time, &km);
if(time<=6||time>=23){ //夜间
if(km<=3){ //3km以内
money = 9+1;
}
else if(km>3&&km<=12){ //3-12km
money = 2.3*(km-3) + 9 + 1;
}
else{ //大于12km
money = 2.3*9+(km-12)*2.3*1.5+10;
}
}
else{ //日间
if(km<=3){ //3km以内
money = 9;
}
else if(km>3&&km<=12){ //3-12km
money = 2*(km-3) + 9;
}
else{ //大于12km
money = 2*9+(km-12)*3+9;
}
}
printf("%.1lf", money);
return 0;
}