C语言编程设有一个已排好序的数组,考虑降序,今输入一个数,要求按原来排序的规律将它插入钊数组中。
时间: 2023-11-21 22:05:56 浏览: 39
可以使用插入排序的思想来解决这个问题。具体步骤如下:
1. 定义一个变量 `i`,从数组的最后一个元素开始向前遍历,找到第一个比插入的数小的元素的位置 `j`。
2. 将元素 `j` 之后的所有元素向后移动一个位置,为插入的数腾出位置。
3. 将插入的数放入位置 `j`。
下面是具体的 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int n, i, j;
printf("请输入要插入的数:");
scanf("%d", &n);
// 寻找插入的位置
for (i = 9; i >= 0; i--) {
if (n > arr[i]) {
break;
}
}
// 将元素后移
for (j = 9; j > i + 1; j--) {
arr[j] = arr[j - 1];
}
// 插入元素
arr[i + 1] = n;
// 输出结果
printf("插入后的数组:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
假设原来的数组为 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19},插入的数为 6,则插入后的数组为 {1, 3, 5, 6, 7, 9, 11, 13, 15, 17, 19}。