用c语言编写函数,将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序,实现过程用指针处理。
时间: 2024-01-05 08:03:36 浏览: 16
好的,我知道了你的问题。以下是用 C 语言编写的函数,实现将一个任意整数插入到已排序整数数组中,并保持有序。
```c
void insert_sorted(int *arr, int n, int num) {
int i, j;
// 找到 num 要插入的位置
for (i = 0; i < n && arr[i] < num; i++);
// 将 num 插入到位置 i
for (j = n - 1; j >= i; j--) {
arr[j + 1] = arr[j];
}
arr[i] = num;
}
```
函数的参数说明:
- `arr`:指向已排序整数数组的指针。
- `n`:整数数组的长度。
- `num`:需要插入的整数。
函数实现的步骤:
1. 遍历整个数组,找到 `num` 应该插入的位置 `i`。
2. 从数组末尾开始,将位置 `i` 后面的元素都向后移动一位。
3. 将 `num` 插入到位置 `i`。
使用示例:
```c
int main() {
int arr[5] = {1, 3, 5, 7, 9};
int n = 5, num = 4;
printf("Before insert: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
insert_sorted(arr, n, num);
n++; // 数组长度加 1
printf("After insert: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果:
```
Before insert: 1 3 5 7 9
After insert: 1 3 4 5 7 9
```
注意:这个函数假设输入的数组已经是有序的。如果输入的数组没有排序,则需要先进行排序。
阅读全文