用c语言编程已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入 数组中,编一程序实现其功能。
时间: 2023-11-29 09:23:48 浏览: 58
好的,这里是一个简单的 C 语言程序,可以实现将一个数插入已排好序数组的功能:
```c
#include <stdio.h>
int main() {
int n, x;
int a[100];
printf("请输入数组元素个数n:");
scanf("%d", &n);
printf("请输入已排好序的数组:");
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入要插入的数x:");
scanf("%d", &x);
// 从后往前遍历数组,找到要插入的位置
int i = n - 1;
while (i >= 0 && a[i] > x) {
a[i+1] = a[i]; // 后移元素
i--;
}
a[i+1] = x; // 插入元素
n++; // 数组长度加1
// 输出插入后的数组
printf("插入后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
程序的执行流程如下:
首先,我们定义了变量 `n` 表示数组元素个数,变量 `x` 表示要插入的数,以及数组 `a` 存储已排好序的元素。
然后,我们通过 `scanf` 函数依次输入 `n` 和数组 `a` 中的元素,再输入要插入的数 `x`。
接着,我们从后往前遍历数组 `a`,找到要插入的位置。如果当前位置的值大于 `x`,就将该位置的元素后移一位,然后继续往前找。如果已经找到了插入的位置,就将 `x` 插入到数组中。
最后,我们输出插入后的数组元素。注意,数组长度 `n` 也要加1。
运行程序,输入示例:
```
请输入数组元素个数n:5
请输入已排好序的数组:1 3 5 7 9
请输入要插入的数x:4
```
输出结果为:
```
插入后的数组为:1 3 4 5 7 9
```
可以看到,程序成功将 `4` 插入到了原数组中,并保持了数组的有序性。
阅读全文