描述:
小明组织了一场写作比赛,共有 n� 名同学参加他组织的写作比赛。
小明邀请了 m� 名评委的评分,评分范围是 00 到 1010 分。而每位同学的得分就是这些评委给分中去掉一个最高分,去掉一个最低分,剩下 m−2�−2 个评分的平均数。
小明想知道得分最高的同学分数是多少,所以他想请你帮忙告诉他,最终评分保留 22 位小数。
输入:
第一行两个整数 n,m�,�,表示参加写作比赛的同学数量和评委的数量,题目保证 1≤n≤100,3≤m≤201≤�≤100,3≤�≤20。
接下来 n� 行,每行 m� 个整数 s1,s2,⋯,sm�1,�2,⋯,��,表示每位评委对某位同学的具体打分 s�,题目保证 0≤s≤100≤�≤10。
输出:
第一行一个浮点数,输出最终评分最高的同学的分数,保留两位小数。
样例输入:
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
//菜鸟复杂版
#include<stdio.h>
int main(){
int n,m;
scanf("%d %d",&n,&m);
int a[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
scanf("%d",&a[i][j]);
if(j==m-1){
printf("\n"); //换行
}
}
}
int s[n];
for(int i=0;i<n;i++){
int max=a[i][0];
int min=a[i][0];
s[i]=a[i][0];
for(int j=1;j<m;j++){
s[i]+=a[i][j];
if(max<a[i][j]){
max=a[i][j];
}
if(min>a[i][j]){
min=a[i][j];
}
}
s[i]=s[i]-max-min; //计算去掉最大最小之后的总分
}
int max=s[0];
for(int i=1;i<n;i++){
if(max<s[i]){
max=s[i]; //最大的同学总分
}
}
float high=0;
high=max/(m-2); //平均分
printf("%.2f",high);
return 0;
}