问题:1168. 歌唱比赛评分
类型:数组找数
题目描述:
四(1) 班要举行一次歌唱比赛,以选拔更好的苗子参加校的歌唱比赛。评分办法如下:设 N 个评委,打 N 个分数( 0≤每个分数≤10 ),去掉一个最高分,去掉一个最低分,剩下的评委的平均分即为该选手的最后得分。
但是选手太多了,靠人工计算每个选手的得分太慢太麻烦。你能不能帮帮他们,设计一个程序让计算机来算出选手的最后得分呢?
输入:
第一行为一个整数 N (5≤N≤10);
第二行为 N 个整数 Ai (0≤Ai≤10 )。
输出:
选手的最后得分(保留两位小数)。
样例:
输入:
5
5 6 7 8 9
输出:
7.00
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知:N 个分数(5≤N≤10);
//未知:该选手的最后得分(保留两位小数)。
//关系: 去掉一个最高分,去掉一个最低分,剩下的评委的平均分即为该选手的最后得分。
//二、定义变量(已知、未知、关系)
int n,a[11],mmax=INT_MIN,mmin=INT_MAX;
double r=0.0;
//三、输入已知
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
r+=a[i];
if(a[i]>mmax) mmax=a[i];
if(a[i]<mmin) mmin=a[i];
}
//四、根据关系计算
r=(r-mmax-mmin)/(n-2);
//五、输出未知
cout<<fixed<<setprecision(2)<<r;
return 0;
}