用C语言写:已有一个按照从小到大排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
时间: 2024-03-08 16:49:25 浏览: 71
python 有一个已经排好序的数组 现输入一个数,要求按原来的规律将它插入数组中 (示例)
5星 · 资源好评率100%
好的,这是一个比较经典的问题。我可以给你一个简单的插入算法实现,供你参考。
假设原始数组为 `arr`,数组长度为 `n`,插入的元素为 `x`。我们需要先找到插入位置,然后将插入位置后的元素依次后移一位,最后将 `x` 插入到插入位置。
具体实现如下:
```c
#include <stdio.h>
void insert(int arr[], int n, int x) {
int i, j;
for (i = 0; i < n; i++) {
if (arr[i] > x) {
// 找到插入位置,将插入位置后的元素依次后移
for (j = n - 1; j >= i; j--) {
arr[j + 1] = arr[j];
}
arr[i] = x; // 将 x 插入到插入位置
break;
}
}
if (i == n) {
arr[n] = x; // 如果 x 是最大的元素,直接插入到数组末尾
}
}
int main() {
int arr[100], n, i, x;
printf("请输入数组长度:");
scanf("%d", &n);
printf("请输入数组元素(从小到大排列):");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("请输入要插入的元素:");
scanf("%d", &x);
insert(arr, n, x);
printf("插入后的数组:");
for (i = 0; i <= n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
你可以将这段代码复制到你的 C 代码编辑器中,编译运行后输入数组和插入元素,然后调用 `insert` 函数插入元素。注意,这里假设数组是从小到大排好序的。
希望这个回答能够帮到你!
阅读全文