起步里程为3公里,起步费10元; 超起步里程后10公里内,每公里2元; 超过10公里以上的部分加收50%的回空补贴费,即每公里3元; 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费),用C语言
时间: 2024-09-29 11:06:06 浏览: 43
这是一个简单的出租车费用计算问题,我们可以使用结构化编程的方式,比如创建一个函数来表示每个阶段的费用计算。这里我们假设有一个结构体`TripInfo`用于存储相关信息,以及一个函数`calculateFare(TripInfo trip)`来计算总费用。
```c
#include <stdio.h>
// 定义结构体存储行程信息
typedef struct {
float base_distance; // 起步里程(公里)
float base_fee; // 起步价(元)
float extra_km_rate; // 超出起步里程后的单价(元/公里)
float waiting_fee_rate; // 每5分钟等待费用(元/5分钟)
float total_km; // 实际行驶里程(公里)
} TripInfo;
// 计算总费用
float calculateFare(TripInfo trip) {
if (trip.total_km <= trip.base_distance) {
return trip.base_fee;
} else if (trip.total_km <= trip.base_distance + 10) {
return trip.base_fee + trip.extra_km_rate * (trip.total_km - trip.base_distance);
} else {
// 超过10公里,先计算前10公里费用,再加超出部分的费用
float first_phase = trip.base_fee + (10 - trip.base_distance) * trip.extra_km_rate;
float second_phase = (trip.total_km - 10) * trip.extra_km_rate * 1.5; // 加50%回空补贴
return first_phase + second_phase;
}
// 对于临时停车,由于题目未给出具体实现,这里暂不考虑,如果需要可以根据实际需求添加额外的计算逻辑
}
int main() {
TripInfo trip = {3, 10, 2, 2 / 5}; // 设置示例里程和费用
trip.total_km = 15; // 假设行驶了15公里
float fare = calculateFare(trip);
printf("总费用:%.2f元\n", fare);
return 0;
}
```
在这个程序中,`main()`函数展示了如何计算一次旅行的总费用。注意,临时停车费用在这里并未包含在内,因为题目条件里没提供具体的计费规则,如果需要计算这部分费用,你需要进一步扩展上述代码。
阅读全文