写一个红灯时间为60秒,绿灯时间为40秒,黄灯3秒,绿灯黄灯红灯循环的c语音程序
时间: 2024-09-19 20:02:35 浏览: 64
这是一个简单的交通信号灯模拟程序,我们将使用C语言的基本控制结构来实现。请注意,由于C语言没有内置处理定时的函数,这里我们假设有一个计数器或者外部硬件可以提供时间间隔。下面是简化的代码示例:
```c
#include <stdio.h>
#include <stdlib.h> // 引入sleep函数
// 定义信号灯颜色和对应的时间
enum LightState {
RED = 0,
GREEN,
YELLOW
};
void changeLight(enum LightState next) {
printf("现在是 %s 灯\n", next == RED ? "红" : (next == GREEN ? "绿" : "黄"));
sleep(next == RED ? 60 : (next == GREEN ? 40 : 3)); // 暂停指定秒数
}
int main() {
enum LightState current = RED; // 初始状态为红灯
while (true) { // 循环模拟信号灯切换
// 红灯转黄灯
if (current == RED) {
current = YELLOW;
}
// 黄灯转绿灯
if (current == YELLOW) {
current = GREEN;
}
// 绿灯转红灯
if (current == GREEN) {
current = RED;
}
changeLight(current);
}
return 0; // 通常程序不会到达这一步,因为是在while循环中
}
阅读全文