c语言中有一个升序(从小到大)排列的数组_有n个整数,再输入一个数,把它插入到原有的数列中,而且仍保持有序,同时输出新数列
时间: 2024-02-22 16:00:18 浏览: 58
python 有一个已经排好序的数组 现输入一个数,要求按原来的规律将它插入数组中 (示例)
5星 · 资源好评率100%
可以使用类似插入排序的思想,将新数插入到原有的有序数组中。
具体实现可以使用循环,从数组的最后一个元素开始往前遍历,比较新数与当前元素的大小,如果新数比当前元素大,就将新数插入到当前元素的后面,然后跳出循环。如果新数比所有元素都小,就将新数插入到数组的最前面。
下面是 C 语言代码实现:
```c
#include <stdio.h>
void insertNumber(int arr[], int n, int num) {
int i, pos;
for (i = n - 1; i >= 0; i--) {
if (arr[i] > num) {
arr[i + 1] = arr[i];
} else {
pos = i + 1;
break;
}
}
if (i == -1) {
pos = 0;
}
arr[pos] = num;
}
int main() {
int arr[] = {1, 3, 4, 7, 8, 10};
int n = 6;
int num = 5;
insertNumber(arr, n, num);
for (int i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在上面的代码中,我们使用了一个循环来遍历数组,找到新数应该插入的位置。然后将原有数组分别插入到新数的左侧和右侧。最终得到的 arr 数组就是新的有序数组。
阅读全文