题解 | 【模板】序列操作

【模板】序列操作

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;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务