用c语言写个红绿灯代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
srand(time(NULL)); // 设置随机数种子

int red = 1; // 红灯状态
int green = 0; // 绿灯状态

while (1) {
    if (red) {
        printf("红灯亮\n");
        green = 0;
        red = 0;
        sleep(3); // 红灯持续3秒
    } else if (green) {
        printf("绿灯亮\n");
        red = 0;
        green = 0;
        sleep(2); // 绿灯持续2秒
    } else {
        printf("黄灯亮\n");
        red = 1;
        green = 0;
        sleep(1); // 黄灯持续1秒
    }

    // 随机改变灯的状态
    int random = rand() % 3;
    if (random == 0) {
        red = 1;
    } else if (random == 1) {
        green = 1;
    } else {
        red = 0;
        green = 0;
    }
}

return 0;

}

上述代码是一个简单的红绿灯控制程序,使用了C语言编写。程序中使用了一个无限循环来模拟红绿灯的变化过程。

首先,通过srand函数设置随机数种子,以便后续随机改变灯的状态。

然后,定义了两个变量red和green,分别表示红灯和绿灯的状态。初始状态下,红灯亮,绿灯灭。

在循环中,根据当前灯的状态,打印相应的提示信息,并根据不同的状态设置灯的状态和持续时间。

如果当前是红灯状态,打印"红灯亮",然后将红灯和绿灯状态都设置为0,表示灭灯。然后使用sleep函数让程序暂停3秒,模拟红灯持续3秒的时间。

如果当前是绿灯状态,打印"绿灯亮",然后将红灯和绿灯状态都设置为0,表示灭灯。然后使用sleep函数让程序暂停2秒,模拟绿灯持续2秒的时间。

如果当前是黄灯状态,打印"黄灯亮",然后将红灯状态设置为1,表示红灯亮,绿灯状态设置为0,表示灭灯。然后使用sleep函数让程序暂停1秒,模拟黄灯持续1秒的时间。

最后,通过rand函数生成一个随机数,根据随机数的值来随机改变灯的状态。如果随机数为0,表示红灯亮;如果随机数为1,表示绿灯亮;如果随机数为2,表示灯都灭。

这样,程序就可以不断循环地模拟红绿灯的变化过程。