任务描述
本关任务:根据某城市普通出租车收费标准编写程序对车费进行计算。具体标准如下: 起步里程为3km,起步费为10元;10km以内超起步里程部分,每千米2元,超过10km以上的部分加收50%的回空补贴费,即每千米3元。营运过程中,因堵车及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
编程要求
输入行驶里程(精确到0.1km)与等待时间(精确到分钟),计算并输出乘客应支付的车费(元),结果四舍五入,保留到元。
分析题目:
1 两个变量 一个是路程s,double,float; 一个是时间t int;还有一个money int;
2 分了三部分 s<=3 money=10;s>3 &&s<=10 money=10+(s-3)*2; s>10 money=24+(s-10)*3
所以我们选择的是 if else-if else 语句。
除此之外还有一个:因堵车及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
所以我们可以进行简单判断,比较好的地方就是不足5分钟不收费,所以可以直接用int t, t/5 来进行求解
3 最后进行相加,记得有一个四舍五入,这个因为我选择使用的money是int类型,只需要在1 中money表达式求解时+0.5即可,如果选择double也可以,不过要在最后一步进行一个强制转换,因为要进行四舍五入
代码:
#include<stdio.h>
int main(void)
{
int t, money;
double s;
printf("请输入路程和时间:");
scanf_s("%lf" ,& s);
scanf_s("%d", &t);
if (s <= 3){
money = 10;
}
else if (s > 3 && s <= 10) {
money = 10 + (s - 3) * 2 + 0.5;
}
else {
money = 24 + (s - 10) * 3 + 0.5;
}
money = money + (t / 5) * 2;
printf("车价为%d", money);
return 0;
}