杭电2014评分数组快排法和基本法

#include<iostream>//0ms
#include<iomanip>
using namespace std;

void qsort(int a[],int left,int right);

int main()
{
    int i,n,m;
    double sum,ave;
    int a[100];
    while(cin>>n)
    {
        sum=0;
        for(i=0;i<n;i++)
            cin>>a[i];
        qsort(a,0,n-1);
        for(i=1;i<n-1;i++)
            sum+=a[i];;
        ave=sum/(n-2);
        cout<<setiosflags(ios::fixed)<<setprecision(2)<<ave<<endl;
    }
    return 0;
}

void qsort(int a[],int left,int right)
{
    int l=left,r=right;
    int key=a[l];
    while(l<r)
    {
        while(key<=a[r]&&l<r)r--;
        a[l]=a[r];
        while(key>=a[l]&&l<r)l++;
        a[r]=a[l];
    }
    a[l]=key;
    if(l-left>1)qsort(a,left,l-1);
    if(right-r>1)qsort(a,r+1,right);

}



#include<iostream>//15ms
#include<iomanip>
using namespace std;

void qsort(int a[],int left,int right);

int main()
{
    int i,a,n,mix,max;
    double sum;
    while(cin>>n)
    {
        sum=0;mix=101;max=-1;
        for(i=0;i<n;i++)
        {
            cin>>a;
            if(a>max)max=a;
            if(a<mix)mix=a;
            sum+=a;
        }
        cout<<setiosflags(ios::fixed)<<setprecision(2)<<(sum-mix-max)/(n-2)<<endl;
    }
    return 0;
}



你可能感兴趣的:(杭电2014评分数组快排法和基本法)