已有一个排好序的数组,今输入一个数,要求原来排序的规律将它插入数组中。C语言
时间: 2023-11-29 15:22:33 浏览: 93
可以使用插入排序的思想来实现。具体步骤如下:
1. 定义一个数组,用来存放已经排好序的元素;
2. 输入一个待插入的数;
3. 从数组的最后一个元素开始往前遍历,如果当前元素比待插入的数大,则将当前元素后移一位;
4. 如果找到一个元素比待插入的数小,则将待插入的数插入到该元素的后面;
5. 如果遍历到数组的第一个元素仍然没有找到比待插入的数小的元素,则将待插入的数插入到数组的第一个位置。
下面是一个示例代码:
```c
#include <stdio.h>
int main()
{
int array[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int i, j, num;
printf("请输入一个数:");
scanf("%d", &num);
// 从后往前遍历数组
for (i = 9; i >= 0; i--)
{
// 如果当前元素比待插入的数大,则将当前元素后移一位
if (array[i] > num)
{
array[i + 1] = array[i];
}
else
{
// 插入待插入的数
array[i + 1] = num;
break;
}
}
// 如果遍历到数组的第一个元素仍然没有找到比待插入的数小的元素,则将待插入的数插入到数组的第一个位置。
if (i == -1)
{
array[0] = num;
}
// 输出排序后的数组
for (j = 0; j < 10; j++)
{
printf("%d ", array[j]);
}
return 0;
}
```
注意:在实际应用中,需要考虑数组已满的情况,可以使用动态数组或链表来解决。
阅读全文