用c语言写一个程序某停车场对日间和夜间收费方式不同,具体规则如下: 1、半小时5元,不足半小时按半小时计费; 2、超过4小时,每小时收取5元,不足1小时按1小时计费 3、停车15分钟内(含)免费; 5、每天的停车费80元封顶。 请编写一个程序,根据停车时间计算停车费。
时间: 2024-05-10 16:17:04 浏览: 125
一个关于停车场的收费系统
以下是用C语言编写的停车收费程序:
```c
#include <stdio.h>
#define PRICE_PER_HALF_HOUR 5.0
#define MAX_DAILY_PRICE 80.0
#define FREE_PARKING_TIME 15.0
#define MIN_PARKING_TIME 0.5
#define MAX_PARKING_TIME 24.0
int main() {
float parking_time;
float price = 0.0;
printf("请输入停车时间(单位:小时):");
scanf("%f", &parking_time);
if (parking_time <= FREE_PARKING_TIME / 60.0) {
printf("您停车时间不足15分钟,停车费用为0元。\n");
return 0;
}
parking_time = (parking_time > MIN_PARKING_TIME) ? parking_time : MIN_PARKING_TIME;
if (parking_time <= 2.0) {
price = PRICE_PER_HALF_HOUR;
} else if (parking_time <= 4.0) {
price = PRICE_PER_HALF_HOUR * (int)(parking_time / 0.5);
} else if (parking_time <= MAX_PARKING_TIME) {
price = 2 * PRICE_PER_HALF_HOUR + 5.0 * (int)((parking_time - 2.0) / 1.0);
} else {
price = MAX_DAILY_PRICE;
}
printf("您的停车费用为%.1f元。\n", price);
return 0;
}
```
程序中使用了一些常量和变量来表示停车收费相关的信息:
- `PRICE_PER_HALF_HOUR`:每半小时停车费用,为5元。
- `MAX_DAILY_PRICE`:每天停车费用上限,为80元。
- `FREE_PARKING_TIME`:停车免费时间,为15分钟。
- `MIN_PARKING_TIME`:最短停车时间,为0.5小时。
- `MAX_PARKING_TIME`:最长停车时间,为24小时。
- `parking_time`:用户输入的停车时间。
- `price`:计算出的停车费用。
程序首先提示用户输入停车时间,并通过 `scanf` 函数读取用户输入的值。
然后程序判断停车时间是否小于等于停车免费时间,如果是则停车费用为0元。如果停车时间小于最短停车时间,则将停车时间设置为最短停车时间。
接下来,程序根据停车时间的不同,使用不同的计费规则计算停车费用。计费规则如下:
- 如果停车时间不超过2小时,则每半小时收费5元。
- 如果停车时间超过2小时但不超过4小时,则每半小时收费5元,不足半小时按半小时计费。
- 如果停车时间超过4小时,则前2小时每半小时收费5元,超过2小时的部分每小时收费5元,不足1小时按1小时计费。
- 如果停车时间超过24小时,则停车费用为每天停车费用上限。
最后,程序输出计算出的停车费用。
需要注意的是,在使用 `printf` 输出浮点数时,为了保留一位小数,使用了格式化字符串 `"%.1f"`。
阅读全文