题解 | 【模板】序列操作
【模板】序列操作
https://www.nowcoder.com/practice/12da4185c0bb45918cfdc3072e544069
#include <stdio.h>
int main() {
int a[100000], q,op,num=0,i,x;
int temp=0;
scanf("%d",&q);
while (q--) {
scanf("%d",&op);
switch (op) {
case 1:
scanf("%d",&x);
a[num++]=x;
break;
case 2:
a[num-1]=0;
num--;
break;
case 3:
scanf("%d",&i);
printf("%d",a[i]);
printf("\n");
break;
case 4:
scanf("%d %d",&i,&x);
a[num]=x;
for(int j=i+1;j<num;j++){
temp=a[j];
a[j]=a[num];
a[num]=temp;
}
num++;
break;
case 5:
for(int j=0;j<num-1;j++){
for(int k=0;k<num-j-1;k++){
if(a[k]>a[k+1]){
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
}
}
break;
case 6:
for(int j=0;j<num-1;j++){
for(int k=0;k<num-j-1;k++){
if(a[k]<a[k+1]){
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
}
}
break;
case 7:
printf("%d",num);
printf("\n");
break;
case 8:
for (int j=0; j<num; j++) {
printf("%d ",a[j]);
}
printf("\n");
break;
}
}
return 0;
}
