#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int n;
double avg,sum,a[100];
while(scanf("%d", &n)!=EOF) {
sum=0;
for(int i=0;i<n;i++) {
scanf("%lf", &a[i]);
}
sort(a,a+n);
for(int j=1;j<n-1;j++) {
sum=sum+a[j];
}
avg=sum/(n-2);
printf("%.2lf\n", avg);
}
}
笔记
1.sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include"algorithm"的c++标准库中。
语法 :Sort(start,end,cmp) 参数
(1)start表示要排序数组的起始地址;
(2)end表示数组结束地址的下一位;
(3)cmp用于规定排序的方法,可不填,默认升序。
2.思路:先将所有成绩从小到大排序,然后从第二大元素加到倒数第二大的元素,用这个和除以n-2,就是平均值了。