标签:
有一个数组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