1 条题解

  • 0
    @ 2026-8-10 16:15:57

    方案1:

    #include<stdio.h>
    int main(){
        int n,l,r;
        scanf("%d %d %d",&n,&l,&r);
        int a[1005];
        for(int i = 0;i<n;i++) scanf("%d",&a[i]);
        for(int i = 0;i<n-1;i++){
            for(int j = l;j<r;j++){
                if(a[j] > a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        for(int i = 0;i<n;i++) printf("%d ",a[i]);
        return 0;
    }
    

    方案2:

    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    int cmp(const int *a,const int *b){
        return *(int *)a - *(int *)b;
    }
    int main(){
        int n,l,r;
        scanf("%d %d %d",&n,&l,&r);
        int a[1005];
        for(int i = 0;i<n;i++) scanf("%d",&a[i]);
        int x = r - l + 1;
        int b[x];
        for(int i = l;i<=r;i++) b[i-l] = a[i];
        qsort(b,x,sizeof(int),cmp);
        for(int i = l;i<=r;i++){
            a[i] = b[i-l];
        }
        for(int i = 0;i<n;i++) printf("%d ",a[i]);
        return 0;
    }
    

    信息

    ID
    1426
    时间
    1000ms
    内存
    64MiB
    难度
    5
    标签
    递交数
    266
    已通过
    99
    上传者