second疑惑

题目总版

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


|