c语言,1)已有一个已排好序的整型数组,要求输入一个整数,将它插入数组中,保持数组依然有序。 例如:现有有序数组(1,3,5,7,9,11,13,17,19,输入整数10,输出结果为:1,3,5,7,9,10,11,13,17,19
时间: 2024-03-06 09:46:14 浏览: 59
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
好的,下面是在C语言中实现的代码:
```c
#include <stdio.h>
void insert_sorted_array(int arr[], int len, int num) {
int i, j;
for (i = 0; i < len; i++) {
if (num < arr[i]) { // 找到要插入的位置
for (j = len-1; j >= i; j--) {
arr[j+1] = arr[j]; // 将大于等于num的元素向后移动一个位置
}
arr[i] = num; // 插入num
break;
}
}
if (i == len) { // 如果num是最大的元素,则直接插入到最后
arr[i] = num;
}
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13, 17, 19};
int len = sizeof(arr) / sizeof(arr[0]);
int num = 10;
insert_sorted_array(arr, len, num);
for (int i = 0; i < len+1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序首先定义了一个名为`insert_sorted_array`的函数,它接受一个已排序的整型数组、数组长度和要插入的整数作为参数。函数中使用两个循环来实现插入操作,外层循环遍历整个数组,找到要插入的位置;内层循环将大于等于要插入元素的元素都向后移动一个位置,然后将要插入的元素插入到该位置。如果要插入的元素是最大的元素,则直接插入到数组的最后。最后,主函数调用`insert_sorted_array`函数,并输出插入元素后的有序数组。
阅读全文