SUINE @ 2024-11-10 15:43:38
现在有 n(n \le 1000)n(n≤1000) 位评委给选手打分,分值从 00 到 1010。需要去掉一个最高分,去掉一个最低分(如果有多个最高或者最低分,也只需要去掉一个),剩下的评分的平均数就是这位选手的得分。现在输入评委人数和他们的打分,请输出选手的最后得分,精确到 22 位小数。
输入格式 第一行输入一个正整数 nn,表示有 nn 个评委。 第二行输入 nn 个正整数,第 ii 个正整数表示第 ii 个评委打出的分值。
输出格式 输出一行一个两位小数,表示选手的最后得分。
#include<bits/stdc++.h>
using namespace std;
int n,a[1001];
double t;
int main()
{
cin>>n;
for(int i=0;a[i];i++)
{
cin>>a[i];
}
sort(a+1;a+n+1);
for(int i=2;i<=n-1;i++)
{
t+=a[i];
}
cout<<t/(n-2)<<fixed<<setprecision(2);
return 0;
}
请求大佬的解答
by fyc_LC @ 2024-11-10 15:59:04
@SUINE
。。。循环都不对
建议好好学学
by SUINE @ 2024-11-10 16:03:11
#include<bits/stdc++.h>
using namespace std;
int n,a[10001];
double t;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
for(int i=2;i<=n-1;i++) t+=a[i];
cout<<fixed<<setprecision(2)<<t/(n-2);
return 0;
}
@fyc_LC