sicily 1817. 校歌手大奖赛
Description
校歌手大奖赛中每个评委会给每个参赛选手打分,请用类描述每个选手的被评委的评分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
Input
输入数据有多组,第一行为数据组数T
每组数据第一行两个正整数 n m (3 <= n,m <= 100),表示有 n 个 评 委 , m个选手。
接下来 n 行,每行 m 个正整数。每行表示一个评委给 m 个选手的分数,分数为[0,100]的整数。
Output
请将结果输出对于每组输入数据输出 m 行,每行表示一个选手的得分,结果保留 2 位小数。
水题,二维数组存储,一维数组记录最高最低分,最后统计输出即可
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 int score[100][100]; 3 int main() 4 { 5 int t, n, m, i, j, sum; 6 int max[100], min[100]; 7 8 scanf("%d", &t); 9 10 while(t--) 11 { 12 scanf("%d %d", &n, &m); 13 14 for( i = 0; i < m; i++ ) 15 { 16 max[i] = -1; 17 min[i] = 101; 18 } 19 20 for( i = 0; i < n; i++ ) 21 for( j = 0; j < m; j++ ) 22 { 23 scanf("%d", &score[i][j]); 24 if( score[i][j] > max[j] ) 25 max[j] = score[i][j]; 26 if( score[i][j] < min[j] ) 27 min[j] = score[i][j]; 28 } 29 30 31 for( i = 0; i < m; i++ ) 32 { 33 sum = 0; 34 for ( j = 0; j < n; j++ ) 35 sum += score[j][i]; 36 sum -= max[i] + min[i]; 37 printf("%.2lf\n", ((double)sum)/(n-2) ); 38 } 39 } 40 41 return 0; 42 }