c语言中有一个升序(从小到大)排列的数组_有n个整数,再从键盘获取一个数,把它插入到原有的数列中,而且仍保持有序,同时输出新数列
时间: 2024-02-22 19:00:19 浏览: 86
可以使用类似插入排序的思想,将新数插入到原有的有序数组中。
具体实现可以使用循环,从数组的最后一个元素开始往前遍历,比较新数与当前元素的大小,如果新数比当前元素大,就将新数插入到当前元素的后面,然后跳出循环。如果新数比所有元素都小,就将新数插入到数组的最前面。
下面是 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[100], n, num;
printf("请输入数组元素个数 n:");
scanf("%d", &n);
printf("请输入数组元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
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 数组就是新的有序数组。
阅读全文
相关推荐
















