您的位置:首页 > 其它

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

2014-11-18 20:42 239 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: