c++ 操作数组
题目描述
本题为了考察数组的基本操作而设置。包括了数组的输入,输出,查找,插入,删除操作。
给你n个数,根据相关的操作命令对数组进行操作。
数组下列操作命令
1 i (1代表输出命令,i代表要输出数组的第i个元素,)
2 i k (2代表插入命令,i和k表示要在数组第i个元素后插入数字k)
3 i (3代表删除命令,i表示删除第i个数)
4 k (4代表查找命令,k是要查找的数,如果查找到,输出第一个查找到的数在数组的位置,如果找不到输出-1)
具体解释看样例
输入格式
第一行一个n 表示数组有n个元素 (n<=100)
第二行为n个正整数,小于10^6
第三行为为m,表示下面有m个命令 5<=m<=10000
每行一个命令,每行的第一个数表示命令的意义,数据保证命令合法有效。
输出格式
根据输入的相关命令,输出相应的值。
样例数据
input
5
1 3 5 7 9
8
1 3 (查询数组第三个元素的值,对应输出的第一行)
2 2 2 (插入操作,在第2个数后插入数字2)
1 3 (输出查询 输出2)
1 5 (输出7)
3 5 (删除第5个元素)
1 5 (输出9,还是第5个元素)
4 3 (查找3在数组的位置,输出为倒数第二行的2)
4 4 (查找4在数组的位置,输出为倒数第一行的-1)
output
5
2
7
9
2
-1
数据规模与约定
时间限制:1s
#include<bits/stdc++.h>
using namespace std;
int a[10010];
int main()
{
int n,x,i,k;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int m;
cin>>m;
for(int j=1;j<=m;j++)
{
cin>>x;
if(x==1) {cin>>i;cout<<a[i]<<endl;}
if(x==2)
{
cin>>i>>k;
for(int s=n;s>=i+1;s--)
a[s+1]=a[s];
a[i+1]=k;
n++;
}
if(x==3)
{
cin>>i;
for(int s=i;s<=n;s++)
{
a[s]=a[s+1];
}
n--;
}
if(x==4)
{
cin>>k;
bool sum=0;
for(int s=1;s<=n;s++)
{
if(a[s]==k){cout<<s<<endl;sum=1;break;}
}
if(sum==0) cout<<"-1"<<endl;
}
}
return 0;
}
本题考察对数组基本概念掌握。
我们只需要按题目所说的不厌其烦的插入,查找,删除就行了。
没有其他多余的代码。