首页 > 代码库 > 向数组中插入数(顺序表)

向数组中插入数(顺序表)

有一个数组init_list[],数组的为长度n,此时需要向数组中的第i个位置(不是索引为i,而是i-1)插入一个数x。

代码如下:

#include<iostream>using namespace std;#define MAXSIZE 100int init_list[MAXSIZE];int insert_list(int list[],int *p,int i,int x){	//之所以用*p是因为:当插入成功的时候,数组的长度要加1	//如果不用指针的话,便不能改变主函数中n的值	if(i<0||i>*p){		cout<<"i输入不合法"<<endl;	} else  if(*p>=MAXSIZE){		cout<<"超出数组长度MAXSIZE"<<endl;;	} else {		for(int j=*p;j>i;j--){			//从最后到第i个数组中的数,依次向后移动一个位置,空出第i个位置来存放x			list[j]=list[j-1];		}		list[i]=x;		(*p)++;//此步容易忘记,若不增加1,则元数组的长度并未改变,就会丢失数组中最后一个数		cout<<"插入成功"<<endl;		return 0;	}}int main(){	int n,x;	cout<<"请输入数组长度"<<endl;	cin>>n;	cout<<endl;	cout<<"请输入数组元素"<<endl;	for(int i=0; i<n; i++){		cin>>init_list[i];	}	cout<<endl;	cout<<"请输入需要插入的位置"<<endl;	int i;	cin>>i;	cout<<"请输入数值"<<endl;	cin>>x;	insert_list(init_list,&n,i,x);	for(int i=0;i<n;i++){		cout<<init_list[i]<<" ";	}}

 

向数组中插入数(顺序表)