2457: 【普及-】【P5738】歌唱比赛

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:33 解决:13

题目描述

 名同学参加歌唱比赛,并接受 lns="http://www.w3.org/1998/Math/MathML">(20) 名评委的评分,评分范围是 lns="http://www.w3.org/1998/Math/MathML">0 到 lns="http://www.w3.org/1998/Math/MathML">10 分。这名同学的得分就是这些评委给分中去掉一个最高分,去掉一个最低分,剩下 lns="http://www.w3.org/1998/Math/MathML">2 个评分的平均数。请问得分最高的同学分数是多少?评分保留 lns="http://www.w3.org/1998/Math/MathML">2 位小数。

输入

第一行两个整数 lns="http://www.w3.org/1998/Math/MathML">,
接下来 lns="http://www.w3.org/1998/Math/MathML"> 行,每行各 lns="http://www.w3.org/1998/Math/MathML"> 个整数,表示得分。

输出

输出分数最高的同学的分数,保留两位小数。

样例输入 复制

7 6
4 7 2 6 10 7
0 5 0 10 3 10
2 6 8 4 3 6
6 3 6 7 5 8
5 9 3 3 8 1
5 9 9 3 2 0
5 8 0 4 1 10

样例输出 复制

6.00

提示


/*
stat 函数的参数int a[] 指接收int 类型的数组名。
传递数组名作为参数只是传递数组在内存中的地址。
数组a[] 其实就是全局变量s[] 的别名,如果在函数中改变a[] 中的一项值,s[] 也会相应地改变。
stat 函数中的变量m、maxscore、sum 等在函数内部定义和使用的,被称为局部变量。函数里的m 变量和外面的m 没有关系。
*/
#include<bits/stdc++.h>
using namespace std;
int s[25],n,m,maxsum; //建议大数组(超过1000个元素)定义为全局变量
void stat(int a[],int m) {
	int maxscore=0,minscore=10,sum=0;
	for(int i=0;i<m;i++) {
		maxscore=max(a[i],maxscore);minscore=min(a[i],minscore);
		sum+=a[i];
	}
	maxsum=max(maxsum,sum-maxscore-minscore);  //记录剩下的n-2评分综合 
}
int main(){
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++) {
    	for(int j=0;j<m;j++) scanf("%d",&s[j]);
    	stat(s,m);
	}
	printf("%.2f",double(maxsum)/(m-2));
	return 0;
}