请用C语言编程帮我实现一个功能:定义3个长度为20的数组1、2、3,接收端会持续接收多组长度为20的数据,将数据按接收先后顺序存入3个数组,发送端每次从数组1中提取数据并清空数组,再将数组2的数据赋给数组1,数组3的数据赋给数组2
时间: 2023-12-10 09:42:38 浏览: 67
好的,下面是代码实现:
```c
#include <stdio.h>
#define MAX_LEN 20
int main() {
int arr1[MAX_LEN], arr2[MAX_LEN], arr3[MAX_LEN];
int arr1_idx = 0, arr2_idx = 0, arr3_idx = 0;
int data[MAX_LEN];
int i;
while (1) {
// 接收数据
printf("请输入长度为20的数据:\n");
for (i = 0; i < MAX_LEN; i++) {
scanf("%d", &data[i]);
}
// 存储数据到数组中
if (arr1_idx < MAX_LEN) {
arr1[arr1_idx++] = data;
} else if (arr2_idx < MAX_LEN) {
arr2[arr2_idx++] = data;
} else {
arr3[arr3_idx++] = data;
}
// 发送数据
if (arr1_idx == MAX_LEN) {
printf("从数组1中提取数据并清空数组:\n");
for (i = 0; i < MAX_LEN; i++) {
printf("%d ", arr1[i]);
arr1[i] = 0;
}
printf("\n");
// 将数组2的数据赋给数组1
for (i = 0; i < MAX_LEN; i++) {
arr1[i] = arr2[i];
}
arr1_idx = arr2_idx;
arr2_idx = 0;
// 将数组3的数据赋给数组2
for (i = 0; i < MAX_LEN; i++) {
arr2[i] = arr3[i];
}
arr2_idx = arr3_idx;
arr3_idx = 0;
}
}
return 0;
}
```
以上代码实现了持续接收多组长度为20的数据,并将数据按接收先后顺序存入3个数组。发送端每次从数组1中提取数据并清空数组,再将数组2的数据赋给数组1,数组3的数据赋给数组2。
阅读全文