题目: 

有一个已经排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中。


分析:

我们可以利用2步来解这道题,

  1. 找到待插入的位置
  2. 插入


代码实现:
#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9 };
	int input = 0;
	int i = 0;
	int right = 0;
	int size = 0;

	scanf("%d", &input);


	size = sizeof(arr) / sizeof(arr[0]);
	right = size - 1 - 1;


	//比大小 - 找到它可以插入的位置
	while (input < arr[right])
	{
    	//如果不是要找的位置,则让元素后移,为后续插入做准备
		arr[right + 1] = arr[right];
		right--;
	}

	//进行插入
	//因为arr[right]该位置是有元素的,所以需要 + 1
	arr[right+1] = input;

	//打印结果
	for (i = 0; i < size; i++)
	{
		printf("%d ", arr[i]);
	}

	return 0;
}