用c语言编程实现流水灯,要求从两边往中间亮,再从中间往两边亮,每次只有两个灯亮
时间: 2024-10-10 13:04:06 浏览: 20
要使用 C 语言实现一个简单的流水灯效果,我们可以利用数组或位操作来模拟 LED 灯的状态。这里我会提供一个基本的控制台版流水灯的示例代码,它使用循环和条件语句来实现两边往中间亮,再从中间往两边亮的效果。
```c
#include <stdio.h>
#define NUM_LEDS 8 // 修改这个值以适应你的LED数量
// 模拟LED状态的数组,0 表示熄灭,1 表示点亮
int led_states[NUM_LEDS];
void toggle_led(int index) {
led_states[index] = (led_states[index] == 0) ? 1 : 0;
}
// 两边往中间亮的函数
void from_sides_to_middle() {
for (int i = 0; i < NUM_LEDS / 2; i++) {
toggle_led(i);
toggle_led(NUM_LEDS - 1 - i); // 右边的LED亮
}
}
// 中间往两边亮的函数
void from_middle_to_sides() {
int middle = NUM_LEDS / 2;
for (int i = 0; i <= middle; i++) {
toggle_led(i);
toggle_led(middle + i); // 两边的LED亮
}
}
int main() {
// 初始化所有LED为关闭
for (int i = 0; i < NUM_LEDS; i++) {
led_states[i] = 0;
}
for (int i = 0; i < 5; i++) { // 反复进行两侧亮中间暗、中间亮两侧暗的过程,共5次
from_sides_to_middle();
printf("\n");
from_middle_to_sides();
printf("\n");
}
return 0;
}
```
阅读全文