恳求帮助!!RE&&RTE!!!
查看原帖
恳求帮助!!RE&&RTE!!!
546062
黄鱼家的猪楼主2021/9/7 21:55

这道题卡了好久了,自己的编译器上能够运行通过,但是提交的时候一直RE还有RTE,恳求各位佬指点一下

#include <stdlib.h>
#define MAX 100005

int GetAverage(int a,int b,int c){
    if((a>=b&&b>=c)||(c>=b&&b>=a)){
        return b;
    }
    if((a>=c&&c>=b)||(b>=c&&c>=a)){
        return c;
    }
    if((c>=a&&a>=b)||(b>=a&&a>=c)){
        return a;
    }
}

int Partition(int A[],int low,int high){
    int pivot =GetAverage(A[low],A[high],A[(low+high)/2]);
        if(pivot == A[high]){
            int temp = A[low];
            A[low] = A[high];
            A[high] = temp;
        }
        if(pivot == A[(high+low)/2]){
            int temp = A[low];
            A[low] = A[(high+low)/2];
            A[(high+low)/2] = temp;
        }
    
    while(low<high){
        while(low<high&&A[high]>=pivot){
            high--;
        }
        A[low]=A[high];
        while(low<high&&A[low]<=pivot){
            low++;
        }
        A[high]=A[low];
    }
    A[low]=pivot;//将下标处作为枢轴元素的最终位置。
    return low;
}

void QuickSort(int A[],int low,int high){
    if(low<high){
        int pivotpos = Partition(A,low,high);
        QuickSort(A,low,pivotpos-1);
        QuickSort(A,pivotpos+1,high);
    }
}

void main(){
    int n;
    int i = 0;
    scanf("%d",&n);
    int A[MAX] = {0};
    for(i = 0;i < n;i++){
        scanf("%d",&A[i]);
    }
    QuickSort(A,0,n-1);
    for(i = 0;i <n-1;i++){
        printf("%d ",A[i]);
    }
    printf("%d\n",A[i]);
}

前三个RE,后两个RTE

2021/9/7 21:55
加载中...