有一个已经排好序的数组a[11]={1,4,6,9,11,16,19,33,40,96},要求c语言实现输入几个数后,按原来排序的规律将它插入数组中
时间: 2023-08-29 10:04:49 浏览: 80
好的,这是一个比较经典的插入排序问题。下面是一个C语言的实现,可以实现输入数字后按照原来排序的规律将其插入数组中:
```c
#include <stdio.h>
int main() {
int a[11] = {1,4,6,9,11,16,19,33,40,96};
int n, i, j, temp;
printf("请输入一个数字:");
scanf("%d", &n);
for (i = 0; i < 10; i++) {
if (n < a[i]) {
for (j = 9; j >= i; j--) {
a[j+1] = a[j];
}
a[i] = n;
break;
}
}
if (i == 10) {
a[10] = n;
}
printf("插入后的数组为:\n");
for (i = 0; i < 11; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
我们首先定义了一个排好序的数组a,然后通过输入一个数字n来实现将n插入到a数组中。我们使用两个循环来实现这个过程:
- 外层循环遍历a数组中的每一个元素,如果发现n小于a[i],说明n应该插入到a[i]之前,那么我们就需要把a[i]到a[9]的所有元素都往后移一个位置,为n腾出空间。
- 内层循环从后往前遍历需要移动的元素,将它们都向后移动一个位置,然后将n插入到a[i]的位置。
- 如果n大于等于a[9],说明n应该插入到最后一个位置a[10]。
最后打印出插入后的数组即可。
阅读全文