用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,表示灯都灭。
这样,程序就可以不断循环地模拟红绿灯的变化过程。