用C语言有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
时间: 2023-05-30 09:03:00 浏览: 99
以下是一个C语言程序,可以实现将一个数插入已排好序的数组中,然后再按照原来的排序规律将数组重新排序。
```c
#include <stdio.h>
void insert(int arr[], int n, int x) {
int i, j;
for (i = 0; i < n; i++) {
if (arr[i] > x) {
for (j = n-1; j >= i; j--) {
arr[j+1] = arr[j];
}
arr[i] = x;
return;
}
}
arr[n] = x;
}
void sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int arr[100], n, i, x;
printf("Enter the number of elements: ");
scanf("%d", &n);
printf("Enter the elements in ascending order: ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("Enter the element to be inserted: ");
scanf("%d", &x);
insert(arr, n, x);
sort(arr, n+1);
printf("The sorted array is: ");
for (i = 0; i < n+1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
程序中的insert函数将输入的数x插入到已排好序的数组中,并保持数组的有序性。sort函数则用选择排序算法将数组重新排序。在主函数中,先输入已排好序的数组,再输入要插入的数,调用insert和sort函数,最后输出重新排序后的数组。
阅读全文