题目描述
青年歌手大奖赛中,评委会给参赛选手打分(0~100分)。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
输入
有两行。第1行是一个整数n(2<n<100),表示评委的人数。第2行是n个整数,分别表示n个评委的打分。
输出
仅一行。选手的得分,结果保留两位小数。
样例输入
4 100 99 98 97
样例输出
98.50
代码如下:
#include<stdio.h>
int main()
{
int n,t,p;
float ave, sum = 0,sum1=0;
int a[100];
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
int max = a[0],min=a[0];
for (int i = 0; i < n; i++)//计算总分
{
sum = sum + a[i];
}
for (int i = 0; i < n; i++)
{
if (a[i] > max)//算出最大值
{
t = max;
max = a[i];
a[i] = t;
}
if (a[i] < min)//算出最小值
{
p = min;
min = a[i];
a[i] = p;
}
}
sum1 = sum - max - min;//减去最大值和最小值
ave = sum1 / (n - 2);//求剩余数平均值
printf("%2.2f", ave);//保留两位小数
return 0;
}