问题:假设有一个数组{1,2,3,4,5},如果我们要在3之后插入一个数(520),这该怎么办呢?
思路:要想在以元素3之后插入一个元素,我们先要做的是让元素3后有一个空位。
错误思路:先让元素4往后移动一个位置从而使元素3后有一个空位,但这样会让元素5直接被元素4覆盖,那么元素5将不会出现在数组中。
正确思路:在数组的最后面增加一个空位,从最后一个元素开始依次让原数组的元素向后移动,直到元素3之后。
C程序代码如下:
#include<stdio.h>
#define MAX_size 6int main(void)
{int s[MAX_size] = { 1, 2, 3, 4, 5 };//(定义一个可以存放6个元素的数组)int element = 520;//待插入的元素为520int length = MAX_size - 1;//定义一个整型元素表示数组元素的个数int place = 3;//待插入的元素将被插入在数组中的位置for (int i = length; i > place; i--)//给要插入的元素腾出空位{s[i] = s[i - 1];}s[place] = element;//插入元素for (int i = 0; i < MAX_size; i++){printf("%d ", s[i]);//输出插入后的元素}return 0;
}