学习目标
1. 学会一维数组的元素插入操作。
2. 应用一维数组的插入操作解决一些实际问题。
回顾
【例1】 将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。
【入门】数组元素的移动
题目描述
数组元素的移动,把数组的第x个位置的元素先保存起来,然后把x+1到n的元素,依次往前移一位,最后原来的第x个位置的元素放在最后
输入
有3行
第一行有一个整数n( n <= 10 )
第二行有n个整数
第三行有一个整数x
输出
移动后的数组
样例
输入
8 1 2 3 4 5 6 7 8 1
输出
2 3 4 5 6 7 8 1
参考程序:
#include
int a[1001];
int n,x;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
a[0]=a[x];
for(int i=x+1;i<=n;i++){
a[i-1]=a[i];
}
a[n]=a[0];
for(int i=1;i<=n;i++){
printf("%d ",a[i]);
}
return 0;
}
【入门】数组元素的插入
题目描述
在一个数组的第x个位置插入一个新的数y
输入
有四行 第一行有一个整数n ( 5 <= n <= 10 ) 第二行有n个整数 第三行有一个整数x,为要插入的位置 第四行有一个整数y,为要插入的整数
输出
更新后的数组
样例
输入
5 7 2 3 4 5 2 9
输出
7 9 2 3 4 5
参考程序:
#include
using namespace std;
int a[11];
int main()
{
int n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x>>y;
for(int i=n;i>=x;i--)
a[i+1]=a[i];
a[x]=y;
for(int i=1;i<=n+1;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}