- 水题
- 在讨论中有人说到用 cout 的话会超时
- 减去一个最高分、一个最低分,就是真的只减去两个分,不管最高还是最低是否有重复的
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int score[100][100];//一维表示评委,二维表示每个选手的分数
int caseNum = 0;
scanf("%d", &caseNum);
while(caseNum--)
{
int judgeNum = 0;
int playerNum = 0;
scanf("%d%d", &judgeNum, &playerNum);//先评委人数,后选手人数
for(int i = 0; i < judgeNum; i++)//遍历评委
{
for(int j = 0; j < playerNum; j++)//遍历选手
{
//评委给分
scanf("%d", &score[i][j]);
}
}
for(int i = 0; i < playerNum; i++)//遍历选手
{
int scoreSum = 0;
int scoreMax = 0;
int scoreMin = 100;
for(int j = 0; j < judgeNum; j++)
{
scoreSum = scoreSum + score[j][i];
if(score[j][i] > scoreMax)
scoreMax = score[j][i];//记录最高分
if(score[j][i] < scoreMin)
scoreMin = score[j][i];//记录最低分
}
scoreSum = scoreSum - scoreMax - scoreMin;//总分减去一个最高分、一个最低分
printf("%.2f\n", scoreSum / (judgeNum - 2.0));//减去两个评委
}
}
return 0;
}