Description
校歌手大奖赛中每个评委会给每个参赛选手打分,请用类描述每个选手的被评委的评分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
Input
输入数据有多组,第一行为数据组数T
每组数据第一行两个正整数 n m (3 <= n,m <= 100),表示有 n 个 评 委 , m个选手。
接下来 n 行,每行 m 个正整数。每行表示一个评委给 m 个选手的分数,分数为[0,100]的整数。
Output
请将结果输出对于每组输入数据输出 m 行,每行表示一个选手的得分,结果保留 2 位小数
=========================================================================================
用cin和cout就超时
以前好似也听说过,scanf和printf比cin和cout快很多!
还有一个bug之前一直都是Wrong Answer,郁闷死
然后发现时最后算减掉两个评委哪里的2换成2.0就解决了~可能是类型转换的问题。
通过的代码如下
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int count;
int a[100][100];
int n, m, i , j; // 有n个评委和m个选手
int max, min, sum;
double score;
scanf( "%d",&count );
while( count-- )
{
scanf( "%d%d", &n, &m );
for( i = 0; i < n; i++ )
for( j = 0; j < m; j++ )
scanf( "%d", &a[i][j] );
for( j = 0; j < m; j++ )
{
max = 0;
min = 100;
for( i = 0; i < n; i++ )
{
if( max < a[i][j] )
max = a[i][j];
if( min > a[i][j] )
min = a[i][j];
}
sum = 0;
score = 0.0;
for( i = 0; i < n; i++ )
sum += a[i][j];
sum = sum - max - min;
score = sum / ( n - 2.0 );
printf( "%.2f\n", score );
}
}
return 0;
}