#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,a[1000010]={0};
void pai(int a[],int n)
{
int i,j,gap=n/2;
int temp;
while(gap>0)
{
for(int i=gap;i<=n;i++)
{
temp=a[i];
j=i-gap;
while(j>=0&&temp<a[j])
{
a[j+gap]=a[j];
j=j-gap;
}
a[j+gap]=temp;
}
gap/=2;
}
}
int main()
{
double b=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
pai(a,n);
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=2;i<=n-1;i++)
{
b+=(double)a[i]/(n-2);
}
printf("%.2lf",b);
}
大哥,你这个为什么有这么多循环,时间复杂度太高了。基本思路先排个序,最多两个循环一嵌套,然后直接for一个从1开始到n-2计算一下不就行了吗?搞这么复杂,很容易出错