本设计要求在PC机上编程完成一个流水灯的算法设计。要求实现如下功能: 1.实现流水灯从左往右逐个点亮;主要内容2.实现流水灯从左往右间隔点亮; 3.从左往右依次点亮,待灯全部亮起后,下一轮保持第一个灯常亮,下下轮保持第二个灯常亮,一直到所有灯常亮其余常见流水灯功能。C语言代码生成
时间: 2024-02-25 20:58:00 浏览: 138
以下是一份基于C语言的流水灯算法设计代码,实现了要求中的三种功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <windows.h>
#define LED_NUM 8 // 流水灯数量
#define INTERVAL 500 // 点亮间隔时间(毫秒)
// 从左往右逐个点亮流水灯
void light_up_one_by_one() {
for (int i = 0; i < LED_NUM; i++) {
for (int j = 0; j < LED_NUM; j++) {
if (j == i) {
printf("1 ");
} else {
printf("0 ");
}
}
printf("\n");
Sleep(INTERVAL);
}
}
// 从左往右间隔点亮流水灯
void light_up_interval() {
for (int i = 0; i < LED_NUM; i++) {
for (int j = 0; j < LED_NUM; j++) {
if (j == i || (j-i) % 2 == 0) {
printf("1 ");
} else {
printf("0 ");
}
}
printf("\n");
Sleep(INTERVAL);
}
}
// 依次点亮流水灯,并保持第i个灯常亮
void light_up_one_by_one_with_one_steady() {
for (int i = 0; i < LED_NUM; i++) {
for (int j = 0; j < LED_NUM; j++) {
if (j == i || j == LED_NUM - 1) {
printf("1 ");
} else {
printf("0 ");
}
}
printf("\n");
Sleep(INTERVAL);
}
}
int main() {
light_up_one_by_one();
light_up_interval();
light_up_one_by_one_with_one_steady();
return 0;
}
```
其中,使用了 `windows.h` 中的 `Sleep` 函数,可以在指定的时间内暂停程序的执行,以实现流水灯的效果。
阅读全文