交通灯十字路口紧急情况C语言代码
时间: 2024-12-11 10:14:04 浏览: 9
以下是一个模拟交通灯十字路口紧急情况的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define RED 0
#define GREEN 1
#define YELLOW 2
#define EMERGENCY 3
int trafficLightStatus = GREEN;
int emergencyVehicleDetected = 0;
void changeLight(int newStatus) {
trafficLightStatus = newStatus;
}
void checkForEmergency() {
if (rand() % 100 < 5) { // 5% chance of emergency vehicle detection
emergencyVehicleDetected = 1;
}
}
void handleEmergency() {
changeLight(RED);
printf("紧急情况!所有方向红灯!\n");
sleep(5); // 等待5秒
emergencyVehicleDetected = 0;
}
void runTrafficLight() {
while (1) {
checkForEmergency();
if (emergencyVehicleDetected) {
handleEmergency();
} else {
switch (trafficLightStatus) {
case GREEN:
printf("绿灯亮起\n");
sleep(10);
changeLight(YELLOW);
break;
case YELLOW:
printf("黄灯亮起\n");
sleep(3);
changeLight(RED);
break;
case RED:
printf("红灯亮起\n");
sleep(10);
changeLight(GREEN);
break;
}
}
}
}
int main() {
runTrafficLight();
return 0;
}
```
这段代码模拟了一个交通灯十字路口系统,并加入了紧急情况处理功能:
1. 定义了四种交通灯状态:红灯、绿灯、黄灯和紧急情况。
2. 使用随机函数模拟紧急车辆出现的概率(5%)。
3. 当检测到紧急车辆时,所有方向变为红灯,并保持5秒。
4. 正常情况下,交通灯按绿灯、黄灯、红灯的顺序循环变化。
这个示例展示了如何在C语言中实现一个基本的交通灯控制系统,并加入紧急情况处理功能。实际应用中可能需要更复杂的逻辑和硬件接口。
阅读全文