首页 > 代码库 > 杭电2014——青年歌手大奖赛_评委会打分

杭电2014——青年歌手大奖赛_评委会打分



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>
int main()
{
	int n,i;
	double z,x,sum,a,b;
	while (scanf("%d",&n)!=EOF)
	{
		sum=0;
		z=0;
		for (i=0;i<n;i++)
		{
			scanf("%lf",&x);
			sum = x+sum;
		}
		z = sum/n;
		printf("%.2lf\n",z);
	}
	return 0;
}
*/
#include<stdio.h>
int main()
{ 
	int n,j,t,i;  
	double f,a[100],sum;// 数组f和变量sum声明为double型的
	while(scanf("%d",&n)!=EOF)
	{
		for(i=0;i<n;i++) 
			scanf("%lf",&a[i]);
		for(i=0;i<n-1;i++)
			for(j=0;j<n-i-1;j++)  
				if(a[j]<a[j+1])
				{
					t=a[j];  
					a[j]=a[j+1]; 
					a[j+1]=t;
				}
				sum=0.0;//每次sum都要初始化为0.0
				for(i=1;i<n-1;i++) 
				{
					sum+=a[i];
				}
				f=sum/(n-2);
				printf("%.2lf\n",f);
	}
	return 0;
}


这段排序的代码值得好好学习;两个循环,就可以直接排序了。很好用。

for(i=0;i<n-1;i++)
	for(j=0;j<n-i-1;j++)  
		if(a[j]<a[j+1])
		{
			t=a[j];  
			a[j]=a[j+1]; 
			a[j+1]=t;
		}

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

杭电2014——青年歌手大奖赛_评委会打分