输入一个数插入有序数组中的C语言代码
时间: 2024-12-11 15:19:03 浏览: 15
在C语言中,如果你想将一个数插入到已经排序的有序数组中,可以按照二分查找法的思想找到合适的位置,然后将新元素插入。这里是一个简单的示例:
```c
#include <stdio.h>
// 定义一个函数来插入元素
void insert(int arr[], int n, int key) {
int i; // 遍历索引
for (i = 0; i < n; i++) { // 当找到比key小的元素或到达数组末尾
if (arr[i] > key) {
break;
}
}
// 将元素复制到右侧
for (int j = n - 1; j >= i; j--) {
arr[j + 1] = arr[j];
}
// 插入key
arr[i] = key;
}
// 测试函数
void print_array(int arr[], int size) {
int i;
for (i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main() {
int arr[] = {1, 3, 5, 7, 9}; // 示例数组
int n = sizeof(arr) / sizeof(arr[0]);
int key = 4; // 要插入的值
printf("Before insertion:\n");
print_array(arr, n);
insert(arr, n, key); // 插入元素
printf("After insertion with key %d:\n", key);
print_array(arr, n);
return 0;
}
```
这段代码首先找到给定键值应该插入的正确位置,然后将后面的元素向右移动一位以便插入新的元素。请注意,这个实现假设输入数组是升序排列的。
阅读全文