c语言有一个已按升序排列的数列,现要将键盘输入的一个数插入到该数列中,要求按原来的排序规律插入。
时间: 2024-02-22 13:00:20 浏览: 71
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;
printf("请输入要插入的数:");
scanf("%d", &num);
insertNumber(arr, n, num);
printf("新数列为:");
for (int i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们使用了一个循环来遍历数列,找到新数应该插入的位置。然后将原有数列分别插入到新数的左侧和右侧。最终得到的 arr 数组就是新的有序数列。
阅读全文