c语言有序数组中插入若干数,每插入一个数都要保持有序
时间: 2024-05-04 21:16:48 浏览: 118
可以使用插入排序的思想,将每个要插入的数插入到有序数组中。具体步骤如下:
1. 定义一个有序数组,并初始化。
2. 定义需要插入的数,从用户输入或其他途径获取。
3. 从数组的最后一个元素开始向前遍历,找到第一个比插入数小的元素的位置。
4. 将插入数插入到该位置,其余元素向后移动一个位置。
5. 重复步骤2-4,直到所有数插入完成。
示例代码如下:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 插入排序
void insertSort(int arr[], int n) {
int i, j, temp;
for (i = 1; i < n; i++) {
temp = arr[i];
for (j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
}
}
int main() {
int arr[MAX_SIZE];
int n, i, j, temp;
// 初始化有序数组
printf("请输入数组长度:");
scanf("%d", &n);
printf("请输入有序数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 插入若干数并保持有序
printf("请输入要插入的数的个数:");
scanf("%d", &j);
for (i = 0; i < j; i++) {
printf("请输入要插入的数:");
scanf("%d", &temp);
arr[n++] = temp; // 将插入数插入到数组末尾
insertSort(arr, n); // 插入排序
}
// 输出结果
printf("插入后的有序数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文