根据C语言生成的100个随机数来控制20个流水灯从中间两个灯开始向两边随机流
时间: 2023-07-31 18:08:12 浏览: 97
随机数排序_20个随机数_数组排序_源码
5星 · 资源好评率100%
以下是一个示例的C语言代码,用于生成100个随机数来控制20个流水灯从中间两个灯开始向两边随机流动:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义流水灯数量
#define LED_COUNT 20
// 生成指定范围内的随机数
int generateRandomNumber(int min, int max) {
return min + rand() % (max - min + 1);
}
// 控制流水灯流动
void controlLEDFlow(int* randomNumbers) {
int currentIndex = LED_COUNT / 2; // 从中间两个灯开始
int direction = 1; // 初始方向为向右
// 流水灯流动循环
while (1) {
// 打印当前流水灯状态
for (int i = 0; i < LED_COUNT; i++) {
if (i == currentIndex) {
printf("* "); // 当前流水灯位置使用星号表示
} else {
printf("- "); // 其他位置使用减号表示
}
}
printf("\n");
// 根据随机数决定是否改变流动方向
if (randomNumbers[currentIndex] % 2 == 0) {
direction *= -1; // 改变方向
}
// 更新流水灯位置
currentIndex += direction;
// 判断是否到达边界,如果是则跳出循环
if (currentIndex < 0 || currentIndex >= LED_COUNT) {
break;
}
}
}
int main() {
srand(time(NULL)); // 初始化随机数种子
int randomNumbers[100]; // 存储随机数的数组
// 生成100个随机数
for (int i = 0; i < 100; i++) {
randomNumbers[i] = generateRandomNumber(1, 100);
}
// 控制流水灯流动
controlLEDFlow(randomNumbers);
return 0;
}
```
这个示例代码首先生成了100个范围在1到100之间的随机数,并存储在`randomNumbers`数组中。然后通过循环控制流水灯的流动,根据随机数决定是否改变流动方向,并更新流水灯的位置。最后打印出当前流水灯的状态。你可以根据自己的需求进行修改和扩展。
阅读全文