【问题描述】
当前许多歌手大奖赛评分时,为了体现公平,在评委给出分数后统计平均得分时,都会去掉最高分和最低分。编写程序,读入评委打分(分数都是整数,评委人数大于等于5,小于等于50),去掉两个最高分和两个最低分,计算并输出平均得分(小数点后保留两位有效数字)。
【输入形式】
从控制台输入评委人数,然后在下一行输入评委的打分(以一个空格分隔的整数)。
【输出形式】
在标准输出上输出平均得分(小数点后保留两位有效数字)。
【输入样例】
15 90 98 99 100 92 97 98 95 91 90 100 92 93 98 90
【输出样例】
94.82
【样例说明】
输入评委打分有15个,去掉两个最高分100和100,两个最低分90和90,计算平均得分为:94.82。
【评分标准】
共有5个测试点。
数组方法
#include<stdio.h>
#define N 100
int main(){
int nums[N],i,sum=0,M;
int Max,max,Min,min;
scanf("%d\n",&M);
for(i=0;i<M;i++){
scanf("%d",&nums[i]);
sum+=nums[i];
}
if(nums[0]>nums[1]){
Max=0;
max=1;
Min=1;
min=0;
}else{
Max=1;
max=0;
Min=0;
min=1;
}
for(i=2;i<M;i++){
if(nums[i]>nums[Max]){
max=Max;
Max=i;
}else if(nums[i]>nums[max]){
max=i;
}
if(nums[i]<nums[Min]){
min=Min;
Min=i;
}else if(nums[i]<nums[min]){
min=i;
}
}
printf("%.2f",(sum-nums[Max]-nums[max]-nums[Min]-nums[min])*1.0/(M-4));
return 0;
}