用c语言实现十字路口通行 路口用东西南北代替
时间: 2024-11-21 14:22:38 浏览: 15
在C语言中,你可以通过数组或结构体来代表四个方向(东、西、南、北)的信号灯,然后设置相应的状态函数来模拟交通规则。这里给出一个简化的例子:
首先,定义一个结构体来存储信号灯状态:
```c
typedef enum { STOP, GO } LightStatus; // 状态枚举,STOP代表红灯,GO代表绿灯
typedef struct {
char direction; // 东、西、南、北
LightStatus status; // 灯的状态
} TrafficSignal;
TrafficSignal trafficLights[4]; // 用于存放四个方向的信号灯信息
```
接下来,可以编写一个函数来更新信号灯状态,比如东向先变绿,再依次向西、南、北:
```c
void updateTrafficLights(int cycle) {
trafficLights[0].status = cycle % 3 == 0 ? GO : STOP; // 东向
trafficLights[1].status = cycle % 3 == 1 ? GO : STOP; // 西向
trafficLights[2].status = cycle % 3 == 2 ? GO : STOP; // 南向
trafficLights[3].status = STOP; // 北向默认为红灯
}
```
然后,在主循环中更新并打印信号灯状态:
```c
int main() {
for (int i = 0; ; i++) {
updateTrafficLights(i); // 模拟时间流逝,每步代表一段时间
printf("Direction: %c - Status: %s\n",
trafficLights[0].direction, trafficLights[0].status == GO ? "绿" : "红");
// 打印当前信号灯状态,这里仅显示第一个方向
sleep(1); // 暂停1秒,模拟交通周期
}
return 0;
}
```
这个例子只是一个非常基础的模拟,现实情况中还需要考虑更复杂的规则,如红绿灯的切换间隔、行人信号等。
阅读全文