MOOC大奖赛现场统分(10分)

题目内容:

大奖赛现场统分。已知某大奖赛有n个()选手参赛,m()个评委为参赛选手评分(最高10分,最低0分)。统分规则为:在每个选手的m个得分中,去掉1个最高分和1个最低分后,取平均分作为该选手的最后得分。要求编程实现根据n个选手的最后得分。

输入格式:

输入选手数目n,评委人数m,数据间隔一个空格;
从第2行起,输入每位选手的m个得分后换行,数据间隔一个空格。

输出格式:

每行输出一个选手的m个得分,以及该选手的最后得分(最后得分保留两位小数),数据间一个空格间隔,注意行尾无空格。

输入样例:

4 6
7.8 8.0 7.5 7.9 8.2 9.0
7.6 7.2 7.5 8.6 8.2 8.0
8.5 8.6 8.3 9.1 8.9 9.0
7.8 8.2 7.7 7.5 6.9 7.2

输出样例:

7.80 8.00 7.50 7.90 8.20 9.00 7.97
7.60 7.20 7.50 8.60 8.20 8.00 7.82
8.50 8.60 8.30 9.10 8.90 9.00 8.75
7.80 8.20 7.70 7.50 6.90 7.20 7.55

时间限制:500ms内存限制:32000kb

#include <stdio.h>
int main()
{
	int n , m , i , j ;
	scanf( "%d %d" , &n , &m ) ;
	float a[ 10 ][ 10 ] , sum[ 10 ] = { 0 } , max , min ;//别用double,这里double过不了
	for( i = 0 ; i < n ; i++ )
		for( j = 0 ; j < m ; j++ )
			scanf( "%f" , &a[ i ][ j ] ) ;
	for( i = 0 ; i < n ; i++ )
	{
		max = min = a[ i ][ 0 ] ;
		for( j = 0 ; j < m ; j++ )
		{
			sum[ i ] += a[ i ][ j ] ;
			if( a[ i ][ j ] > max ) max = a[ i ][ j ] ;
			if( a[ i ][ j ] < min ) min = a[ i ][ j ] ;
			printf( "%.2f " , a[ i ][ j ] ) ;
		}
		sum[ i ] = ( sum[ i ] - max - min ) / ( m - 2 ) ;
		printf( "%.2f\n" , sum[ i ] ) ;
	}
	return 0 ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浣花溪畔蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值