c语言实现交通信号灯
时间: 2024-11-27 14:10:51 浏览: 24
在C语言中实现交通信号灯通常会用到结构体、数组或枚举等数据类型来模拟红绿黄三色信号灯的切换。这里我们可以简单地创建一个模拟交通灯的程序,它包含三个状态变量,分别代表红、绿和黄灯。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义交通灯的状态
enum Light { RED, GREEN, YELLOW };
typedef struct {
enum Light color;
int time_remaining; // 等待时间
} TrafficLight;
void switchLights(TrafficLight lights[]) {
if (lights[RED].time_remaining <= 0) {
lights[RED].color = GREEN;
lights[RED].time_remaining = 60; // 设定红灯时间为60秒
} else {
lights[RED].time_remaining--;
}
if (lights[GREEN].time_remaining <= 0) {
lights[Yellow].color = RED;
lights[GREEN].time_remaining = 3; // 设定绿灯时间为3秒
} else {
lights[GREEN].time_remaining--;
}
}
int main() {
TrafficLight traffic_lights[] = {
{ RED, 60 },
{ GREEN, 0 },
{ YELLOW, 0 }
};
while (true) {
switchLights(traffic_lights);
printf("当前信号灯状态: %s\n", traffic_lights[RED].color == RED ? "红色" :
traffic_lights[GREEN].color == GREEN ? "绿色" : "黄色");
// 暂停一会儿让灯变化
sleep(1); // 使用sleep函数模拟一秒延迟,实际项目中可以替换为系统定时器
}
return 0;
}
```
阅读全文