写一段C语言,有一个长度为20的数组,不停的有数据进入数组,数据不停地排序并左移
时间: 2023-05-18 17:02:47 浏览: 63
以下是一段C语言代码,可以实现一个长度为20的数组,不停地有数据进入数组,数据不停地排序并左移:
```c
#include <stdio.h>
void insert(int arr[], int n) {
int i, j, temp;
for (i = 1; i < n; i++) {
temp = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
void shift_left(int arr[], int n) {
int i;
for (i = 0; i < n - 1; i++) {
arr[i] = arr[i + 1];
}
}
int main() {
int arr[20] = {0};
int i, n = 0;
while (1) {
printf("请输入一个整数:");
scanf("%d", &arr[n]);
n++;
if (n == 20) {
insert(arr, n);
shift_left(arr, n);
n--;
}
printf("当前数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
return 0;
}
```
这段代码中,我们定义了一个长度为20的数组arr,并且定义了两个函数insert和shift_left。insert函数可以将一个新的数插入到已经排好序的数组中,并且保持数组的有序性;shift_left函数可以将数组向左移动一位。在主函数中,我们不停地读入一个整数,将其插入到数组中,并且判断数组是否已经满了。如果数组已经满了,我们就先对数组进行排序,然后将数组向左移动一位,再将新的数插入到数组的最后一位。最后,我们输出当前的数组。这样,我们就可以不停地向数组中插入新的数,并且保持数组的长度为20。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)