已有一个已排好序的数组,现输入一个数,c语言要求按原来排序的规律将它插入数组中。
时间: 2023-11-29 16:12:40 浏览: 58
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
好的,这是一个经典的问题,可以用插入排序算法实现。以下是C语言代码示例:
```c
#include <stdio.h>
#define MAX_SIZE 100
void insert(int arr[], int n, int x){
int i, j;
for(i=0; i<n; i++){
if(x < arr[i]){
for(j=n; j>i; j--){
arr[j] = arr[j-1];
}
arr[i] = x;
return;
}
}
arr[n] = x;
}
int main(){
int arr[MAX_SIZE], n, x;
printf("Enter the size of array: ");
scanf("%d", &n);
printf("Enter the sorted array:\n");
for(int i=0; i<n; i++){
scanf("%d", &arr[i]);
}
printf("Enter the number to be inserted: ");
scanf("%d", &x);
insert(arr, n, x);
printf("New array after insertion: ");
for(int i=0; i<=n; i++){
printf("%d ", arr[i]);
}
return 0;
}
```
在这个示例中,我们首先从用户输入中读取输入数组的大小和已排序的数组。然后,我们从用户输入中读取要插入的数x,并将其插入到数组中。
在insert()函数中,我们使用两个嵌套的for循环来查找要插入的位置,并将数组中的元素向右移动,以便为新元素腾出空间。最后,我们将新元素插入到正确的位置,并返回结果。
阅读全文