用c语言编写一个程序,将输入的数据插入到一个已按升序排好的数组中,要求插入后的数组仍然按升序排列。
时间: 2023-06-08 07:06:32 浏览: 153
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
好的,这是一个常见的排序算法,可以使用插入排序来实现。以下是用C语言编写的程序:
```c
#include <stdio.h>
void insertSort(int arr[], int n) {
int i, j, temp;
for (i = 1; i < n; i++) {
temp = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = temp;
}
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int i, num;
printf("请输入要插入的数字:");
scanf("%d", &num);
for (i = n-1; i >= 0 && arr[i] > num; i--) {
arr[i+1] = arr[i];
}
arr[i+1] = num;
insertSort(arr, n+1);
printf("插入后的数组为:\n");
for (i = 0; i < n+1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序中,我们首先输入一个已经按照升序排列的数组,然后输入需要插入的数字。随后,我们把需要插入的数字插入到合适的位置,再使用插入排序算法对整个数组进行排序,最后输出排序后的结果。
阅读全文