题目:
有一个已经排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中。
分析:
我们可以利用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;
}
标签:arr,right,int,插入,谭浩强,input,size
From: https://blog.51cto.com/u_16509575/9453601