标签:
有一个数组init_list[],数组的为长度n,此时需要向数组中的第i个位置(不是索引为i,而是i-1)插入一个数x。
代码如下:
#include<iostream>
using namespace std;
#define MAXSIZE 100
int 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]<<" ";
}
}
标签:
原文地址:http://www.cnblogs.com/-beyond/p/5831060.html