帮我用c语言设计一个东南西北四个方向的交通灯,红灯亮五秒后熄灭,过一秒后黄灯闪烁三次,每次闪烁持续一秒,绿灯亮五秒后熄灭,过一秒后黄灯闪烁三次,每次闪烁一秒且四个方向的交通灯是同时亮和灭的
时间: 2024-10-10 12:09:57 浏览: 26
为了用C语言设计一个简单的四向交通灯模拟,我们可以使用`stdio.h`库来控制输出,并利用时间间隔来模拟灯的变化。这里是一个简化的示例:
```c
#include <stdio.h>
#include <time.h>
enum Direction { RED, YELLOW, GREEN };
void changeLights(enum Direction direction) {
switch (direction) {
case RED:
printf("All lights turn red for 5 seconds.\n");
sleep(5); // 模拟五秒
break;
case YELLOW:
printf("Yellow light flashes three times, each for 1 second.\n");
for (int i = 0; i < 3; ++i) {
printf("Yellow flashing... %d\n", i+1);
sleep(1);
}
break;
case GREEN:
printf("All lights turn green for 5 seconds.\n");
sleep(5);
break;
}
}
int main() {
enum Direction currentDirection = RED;
while (true) {
changeLights(currentDirection);
// 红灯结束后立即转为黄灯
if (currentDirection == RED) {
currentDirection = YELLOW;
} else if (currentDirection == YELLOW) {
// 黄灯结束后转为绿灯,然后回循环到红灯
currentDirection = GREEN;
} else { // 如果当前是绿灯,则直接转回红灯
currentDirection = RED;
}
}
return 0;
}
```
在这个程序中,我们定义了一个枚举`Direction`表示交通灯的状态,然后在一个无限循环中切换颜色。请注意,`sleep()`函数用于暂停程序执行,但在实际应用中,可能需要更复杂的方式来处理计时,例如使用定时器。
阅读全文