停车场停车等待(C语言)
时间: 2024-08-12 18:09:04 浏览: 41
在C语言中,编写一个简单的停车场停车等待系统并不复杂,你可以使用结构体来模拟停车位,数组或链表来存储停车位信息,并设计一个函数来处理车辆的入出和等待。以下是一个简化的示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int status; // 0表示空位,1表示已占用
int car_waiting; // 如果车位被占,记录等待车辆数
} ParkingSpot;
#define MAX_SPOTS 10 // 停车场最大停车位数量
ParkingSpot parking_spots[MAX_SPOTS];
void park(int vehicle_id) {
int i;
for (i = 0; i < MAX_SPOTS; i++) {
if (parking_spots[i].status == 0) {
parking_spots[i].status = 1; // 车辆进入
parking_spots[i].car_waiting = 0; // 初始等待数为0
printf("Vehicle %d parked in spot %d.\n", vehicle_id, i + 1);
break;
} else if (parking_spots[i].status == 1 && parking_spots[i].car_waiting == 0) {
parking_spots[i].car_waiting = vehicle_id; // 车辆进入等待区
printf("Vehicle %d is waiting in spot %d.\n", vehicle_id, i + 1);
break;
}
}
}
void leave(int vehicle_id) {
int i;
for (i = 0; i < MAX_SPOTS; i++) {
if (parking_spots[i].status == 1 && parking_spots[i].car_waiting == vehicle_id) {
parking_spots[i].status = 0; // 车辆离开,车位空闲
parking_spots[i].car_waiting = 0; // 清空等待计数
printf("Vehicle %d left spot %d.\n", vehicle_id, i + 1);
break;
}
}
}
int main() {
// 示例操作
park(1);
park(2); // 第二辆车会等待
leave(1);
leave(2);
return 0;
}
```