7-18 出租车计价(15 分)

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(void) {
    double km;
    int time;

    scanf("%lf %d", &km, &time);

    double km_fee, sum;
    int time_fee;

    if (km <= 3.0) {
        km_fee = 10;
    }
    else if (km <= 10.0) {
        km_fee = 10 + 2 * (km - 3);
    }
    else {
        km_fee = 10 + 14 + 3 * (km - 10);
    }
    time_fee = 2 * (time / 5);
    sum = km_fee + time_fee;
    printf("%.0f\n", sum);

    return 0;
}
从提供的引用来看,出租车计价的标准为: - 起步里程为3公里,起步费10元; - 超起步里程后10公里内,每公里2元; - 超过10公里以上的部加收50%的回空补贴费,即每公里3元; - 营运过程中,因路阻及乘客要求临时停车的,按每5钟2元计收(不足5钟则不收费)。 下面给出几种不同语言实现出租车计价功能的代码示例: ### C语言实现 ```c #include <stdio.h> int main() { double km; // 行驶里程 int t; // 等待时间 int m; // 总费用 scanf("%lf %d", &km, &t); if (km <= 3) { m = 10 + t / 5 * 2 + 0.5; } else if (km <= 10) { m = (km - 3) * 2 + 10 + t / 5 * 2 + 0.5; } else { m = (km - 10) * 3 + 10 + 14 + t / 5 * 2 + 0.5; } printf("%d", m); return 0; } ``` ### 另一种C语言实现 ```c #include <stdio.h> int main() { double km; // 公里 int m; // 钟 double money = 0; // 钱 scanf("%lf %d", &km, &m); if (m < 5) { if (km <= 3) { money = 10; } else if (km <= 10) { money = 10 + (km - 3) * 2; } else { money = 10 + 7 * 2 + (km - 10) * 3; } } else { if (km <= 3) { money = 10 + (m / 5) * 2; } else if (km <= 10) { money = 10 + (km - 3) * 2 + (m / 5) * 2; } else { money = 10 + 7 * 2 + (km - 10) * 3 + (m / 5) * 2; } } printf("%.1lf\n", money); return 0; } ``` ### 还有一种C语言实现 ```c #include <stdio.h> int main() { float a = 10.0; int c; float b; scanf("%f %d", &b, &c); if (b > 3 && b <= 10) { a += (b - 3) * 2; } if (b > 10) { a += (b - 10) * 3 + 14; } a += (c / 5) * 2; c = a + 0.5; printf("%d", c); return 0; } ``` 这些代码的基本思路都是先读取输入的行驶里程和等待时间,然后根据不同的里程区间和等待时间情况计算费用,最后输出总费用。其中 `+0.5` 是为了实现四舍五入的效果。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值