c语言有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中
时间: 2023-12-01 14:01:41 浏览: 82
。好的,这个问题我可以为你解答。首先,我们可以遍历数组找到要插入的位置。具体来说,我们可以从数组末尾开始向前寻找,直到找到第一个比要插入的数小的位置,然后将这个数后面的所有元素向后移动一位,再将要插入的数放到这个位置上即可。
下面是一个示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int arr[MAX_SIZE], n, num, i, pos;
// 输入已经排好序的数组
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组的%d个元素(从小到大排列):\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 输入要插入的数
printf("请输入要插入的数:");
scanf("%d", &num);
// 遍历数组找到插入位置
for (i = n - 1; i >= 0; i--) {
if (arr[i] > num) {
arr[i+1] = arr[i];
} else {
pos = i + 1;
break;
}
}
if (i < 0) { // 循环结束仍未找到插入位置,说明要插入的数为最小值
pos = 0;
}
// 将要插入的数放到插入位置
arr[pos] = num;
n++; // 数组元素个数加1
// 输出插入后的数组
printf("插入后的数组为:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
希望这个答案能帮到你!
阅读全文