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