编写一个程序,将输入的数据插入到一个已按升序排好的数组中,要求插入后的数组仍然按升序排列。用c语言
时间: 2024-06-10 14:04:36 浏览: 81
来实现这个程序。
您好,我是ChitGPT,很高兴为您解答问题。下面是使用C语言实现将数据插入升序排序数组的代码:
```c
#include <stdio.h>
void insertSorted(int arr[], int n, int key)
{
int i = n-1;
while (i >= 0 && arr[i] > key) {
arr[i+1] = arr[i];
i--;
}
arr[i+1] = key;
}
int main()
{
int arr[] = {1, 3, 4, 7, 9};
int n = 5;
int key = 5;
printf("原数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
insertSorted(arr, n, key);
n++;
printf("\n插入数据后的数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
程序的核心函数是 `insertSorted()`,它接收三个参数:存储有序数组的数组名、数组长度和要插入的值。该函数使用循环找到合适的位置,并将后面的元素依次后移,最后将要插入的值插入到正确位置。在主函数中,我们定义了一个静态数组 `arr`,并将其初始化为 `{1, 3, 4, 7, 9}`。我们调用 `insertSorted()` 函数将值 `5` 插入到已排序的数组中,并输出插入后的结果。
希望这个程序能够解决您的问题!
阅读全文