杭电2014

青年歌手大奖赛_评委会打分

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 43629    Accepted Submission(s): 21739


Problem Description

青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

 


Input

输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。

 


Output

对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

 


Sample Input

3 99 98 97
4 100 99 98 97

 


Sample Output

98.00
98.50

 

对于这道题可以先进行排序,之后将第一个数和最后一个数去掉,其他数相加即可。代码如下:

#include <stdio.h>
#include <malloc.h>

int main ()
{
	int i,n,j,temp;

	while (scanf("%d",&n)!=EOF)
	{
		float sum = 0;
		int *p =(int *)malloc (n * sizeof(int));

		for (i=0; i<n; i++)
			scanf("%d",&p[i]);
		for (j=0; j<n-1; j++)
		{
			for (i=0; i<n-1-j; i++)

				if (p[i]>p[i+1])
				{
					temp = p[i];
					 p[i] =p[i+1];
					p[i+1] = temp;
				}
		}
		for (i=1; i<n-1; i++)
			sum=sum+p[i];
		printf("%.2f\n",sum/(n-2));
	}

	return 0;
}


你可能感兴趣的:(杭电2014)