用C语言指针写一个程序:编写函数,将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然 保持有序,实现过程用指针处理
时间: 2024-01-05 10:04:04 浏览: 31
下面是一个简单的用C语言指针实现插入排序的程序:
```c
#include <stdio.h>
void insert(int *arr, int n, int value) {
int i, j;
for (i = 0; i < n; i++) {
if (arr[i] > value) {
for (j = n - 1; j >= i; j--) {
arr[j + 1] = arr[j];
}
arr[i] = value;
break;
}
}
if (i == n) {
arr[n] = value;
}
}
int main() {
int arr[10] = {1, 3, 5, 7, 9};
int n = 5, i;
insert(arr, n, 4);
n++;
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
函数`insert`接收一个已排序的整数数组`arr`,数组长度`n`和一个整数`value`,将`value`插入到`arr`中,并保持数组有序。具体实现是遍历数组,找到第一个大于`value`的元素,然后将它后面的元素全部向后移动一位,最后将`value`插入到这个位置。如果找不到大于`value`的元素,说明`value`是最大的,直接将它插入到数组末尾。
在`main`函数中,我们首先定义了一个包含5个元素的已排序整数数组`arr`,然后调用`insert`函数将整数4插入到数组中,最后输出数组中的所有元素。