7-18 出租车计价 (15分)
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为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
#include<stdio.h>
int main(){
double n;
double x;
int min;
int l;
scanf("%lf %d",&n,&min); 输入路程以及等待时间
if(n<=3){
x = 10;
}else if(n<=10){
n = n-3;
x = 10+n*2.0;
}else {
n = n-10;
x = 24 + n*3.0;
}
if(min>=5){
x += min/5*2.0;
}
x = (int)(x+0.5);//判断最后所花费人民币四舍五入结果
l = x;
printf("%d",l);
return 0;
}
核心代码就一行
x = (int)(x+0.5);通过此判断是否满足四舍五入条件。
由于语言特性,强转换类型之后,int会忽略后面的小数点,故在转换前将浮点类型数的小数点加0.5,浮点数后小数大于等于0.5则进一,小于则舍弃;