#define MAX_DATA_NUM 100 // 定义数组的最大容量为100int data[MAX_DATA_NUM]; // 定义一个长度为100的数组用于存储数据int data_num = 0; // 定义一个变量用于记录已经存储的数据数量while (1){ Elude_detect_barrier(); char buf[10]; int i = 0; while (1) { if (USART_GetFlagStatus(USART3, USART_FLAG_RXNE) == SET) { buf[i] = USART_ReceiveData(USART3); i++; if (i == 9) { break; } } } formaldehyde = (buf[2] << 8) + buf[3]; sprintf(display, "Formaldehyde: %d", formaldehyde); float formaldehyde_f = (float)formaldehyde / 10.0; if (formaldehyde_f > 0.1) { sprintf(display, "Formaldehyde: %.1f", formaldehyde_f); Car_Stop(0); OLED_Clear(); OLED_ShowString(0, 0, display, 16); Beep_Alert(); // 将超过浓度阈值的数据存储到数组中 if (data_num < MAX_DATA_NUM) { data[data_num] = formaldehyde; data_num++; } } // 检查数组中存储的数据是否超过一定数量,如果超过则触发相应的报警或者处理机制 if (data_num >= 10) { // TODO: 触发报警或者处理机制 data_num = 0; // 重置数据数量 } delay(30000);}怎么设计程序实现显示将数组中存储的超标的浓度显示出来
时间: 2023-12-06 09:45:29 浏览: 30
可以在触发报警或处理机制的时候,遍历数组将超标数据显示出来。例如,可以在触发报警或处理机制的 TODO 部分添加以下代码:
```c
// 遍历数组将超标数据显示出来
for (int i = 0; i < data_num; i++) {
if (data[i] > 10) { // 假设超标阈值为10
sprintf(display, "Data[%d]: %d", i, data[i]);
OLED_ShowString(0, i*16+16, display, 16);
}
}
```
这段代码会将数组中所有超过阈值的数据的索引和数值显示在 OLED 屏幕上。注意,需要在显示之前调用 `OLED_Clear()` 清空屏幕。
相关问题
#define MAX_POINTS 1000 typedef struct point_set {//监测点集合的数据结构体 int num_points; point_record data[MAX_POINTS]; } point_set;详细解释以上函数
这段代码定义了一个宏常量 MAX_POINTS,表示点集合的最大容量为 1000 个点。同时,定义了一个结构体 point_set,表示点集合的数据结构体,包含两个成员变量:num_points 表示当前点集合中实际包含的点的数量;data 表示点的记录数组,最多能够容纳 MAX_POINTS 个点。其中,point_record 是一个自定义的结构体类型,表示点的记录,具体内容可能包括点的坐标、属性、状态等信息。
C语言#define MAX_TREENODE_NUM 100 // "孩子链表表示法" 中二叉树的最大节点个数 // "孩子链表表示法" 中孩子链表节点结构体类型定义 typedef struct ChildNode { int Child; // 孩子节点的位置(索引号) struct ChildNode *Next; // 指向下一个孩子的指针 }ChildNode; // "孩子链表表示法" 中二叉树节点结构体类型定义 typedef struct DataNode { char Data; // 二叉树中节点的数据类型 struct ChildNode *FirstChild; // 指向二叉树中节点的第一个孩子的指针 }DataNode; // "孩子链表表示法" 中二叉树结构体类型定义 typedef struct ChildTree { DataNode Nodes[ MAX_TREENODE_NUM ]; // 二叉树的"孩子链表表示法" int Root; // 树根节点的游标 - 静态指针值 int TreeNodeNum // 二叉树中实际的节点数目 }ChildTree; 要求完成如下设计并编写代码、调试通过: (1)设计函数将二叉树以“孩子链表表示法”输入到计算机中(自定义输入数据的格式和方式)
以下是将二叉树以“孩子链表表示法”输入到计算机中的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_TREENODE_NUM 100 // "孩子链表表示法" 中二叉树的最大节点个数
// "孩子链表表示法" 中孩子链表节点结构体类型定义
typedef struct ChildNode {
int Child; // 孩子节点的位置(索引号)
struct ChildNode *Next; // 指向下一个孩子的指针
} ChildNode;
// "孩子链表表示法" 中二叉树节点结构体类型定义
typedef struct DataNode {
char Data; // 二叉树中节点的数据类型
struct ChildNode *FirstChild; // 指向二叉树中节点的第一个孩子的指针
} DataNode;
// "孩子链表表示法" 中二叉树结构体类型定义
typedef struct ChildTree {
DataNode Nodes[MAX_TREENODE_NUM]; // 二叉树的"孩子链表表示法"
int Root; // 树根节点的游标 - 静态指针值
int TreeNodeNum; // 二叉树中实际的节点数目
} ChildTree;
// 创建孩子链表节点
ChildNode *CreateChildNode(int child) {
ChildNode *node = (ChildNode *) malloc(sizeof(ChildNode));
node->Child = child;
node->Next = NULL;
return node;
}
// 插入孩子链表节点
void InsertChildNode(ChildNode **first, int child) {
ChildNode *node = CreateChildNode(child);
node->Next = *first;
*first = node;
}
// 输入二叉树
void InputChildTree(ChildTree *tree) {
printf("请输入二叉树的节点数:\n");
scanf("%d", &tree->TreeNodeNum);
getchar(); // 处理缓存
printf("请输入二叉树的根节点:\n");
scanf("%d", &tree->Root);
getchar(); // 处理缓存
printf("请输入二叉树的节点信息,格式为:parent child1 child2 ...\n");
for (int i = 0; i < tree->TreeNodeNum; i++) {
char input[100];
fgets(input, 100, stdin);
char *token = strtok(input, " ");
int parent = atoi(token);
token = strtok(NULL, " ");
while (token != NULL) {
int child = atoi(token);
InsertChildNode(&tree->Nodes[parent].FirstChild, child);
token = strtok(NULL, " ");
}
}
}
int main() {
ChildTree tree;
InputChildTree(&tree);
return 0;
}
```
以上代码中,`InputChildTree` 函数负责读取二叉树的输入信息,包括节点数、根节点和每个节点的孩子。在读取孩子信息时,使用 `strtok` 函数分割输入信息,将孩子节点插入到相应父节点的孩子链表中。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)