用c语言已有一个已排好序的数组,现输入一个数,要求按原来排序的规律将它插入数组中。
时间: 2023-11-29 12:12:41 浏览: 78
好的,这是一个经典的插入排序问题。代码如下:
```c
#include <stdio.h>
int main() {
int arr[100]; // 假设数组长度不超过 100
int n, num, i, j;
// 读入数组长度和已有元素
printf("请输入数组长度:");
scanf("%d", &n);
printf("请输入已有元素:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 读入待插入元素
printf("请输入新元素:");
scanf("%d", &num);
// 插入元素
for (i = 0; i < n; i++) {
if (num < arr[i]) {
for (j = n; j > i; j--) {
arr[j] = arr[j-1];
}
arr[i] = num;
break;
}
}
if (i == n) {
arr[n] = num;
}
n++;
// 输出结果
printf("插入后的数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序中,我们先读入数组长度和已有元素,再读入待插入元素。接着用两层循环找到插入位置,并将其插入。最后输出结果。注意要判断待插入元素比所有已有元素都大的情况。
阅读全文