用C语言编写一个程序:有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
时间: 2024-12-06 07:20:36 浏览: 18
当然可以。在C语言中,我们可以创建一个函数来实现这个功能。假设数组是整型数组,这里是一个简单的示例:
```c
#include <stdio.h>
// 插入元素的辅助函数
void insertSorted(int arr[], int n, int key) {
int i; // 遍历数组的索引
for (i = n - 1; i >= 0 && arr[i] > key; i--) { // 从后向前查找插入位置
arr[i + 1] = arr[i]; // 移动元素
}
arr[i + 1] = key; // 插入新元素
}
int main() {
int arr[] = {1, 3, 5, 7, 9}; // 已排序的数组
int n = sizeof(arr) / sizeof(arr[0]);
int key; // 待插入的数
printf("请输入一个数字:");
scanf("%d", &key);
insertSorted(arr, n, key); // 插入数字并保持数组有序
printf("插入后的数组:\n");
for (int i = 0; i <= n; i++) {
printf("%d ", arr[i]); // 打印数组
}
return 0;
}
```
在这个程序中,`insertSorted` 函数首先找到正确的插入位置,然后将大于 `key` 的元素向右移动一位,最后将 `key` 插入到适当的位置。
阅读全文