网站建设优化网站排名河北百度seo点击软件
题目描述
 本题为了考察数组的基本操作而设置。包括了数组的输入,输出,查找,插入,删除操作。
给你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;
 }
本题考察对数组基本概念掌握。
我们只需要按题目所说的不厌其烦的插入,查找,删除就行了。
没有其他多余的代码。
