1 条题解

  • 2
    @ 2023-8-3 23:22:46

    还算简单 暴力遍历即可

    已AC,放心食用

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n; //数组num保存选手的编号
        cin>>n;
        int num[100];
        double score[100];         //数组score保存选手的最终得分
        for(int i=0; i<n; i++){
            cin>>num[i];           //输入编号
            int sum = 0;
            int max_ = 0, min_ = 100;        // 最高分、最低分
            for(int j=0; j<5; j++){
                int temp;
                cin>>temp;
                sum += temp;         //5个分数累加
                if(max_<temp){ max_=temp; }    //找到最高分
                if(min_>temp){ min_=temp; }    //找到最低分
            }
            score[i] = (sum - max_ - min_) / 3.0; //最终得分
        }
        /*** 手动排序 *****/
        //这里用冒泡排序,每一趟确定一个最大值,只需要跑3趟就可以确定3个最大值
        for(int i=0; i<3; i++){
            for(int j = 0; j<n-1;j++){
                if(score[j]<score[j+1]){   //交换
                    swap(score[j], score[j+1]);
                    swap(num[j], num[j+1]);
                }
            }
        }
        for(int i=0;i<3;i++){
            cout<<num[i]<<" "<<fixed<<setprecision(3)<<score[i]<<endl;;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    312
    时间
    1000ms
    内存
    16MiB
    难度
    2
    标签
    递交数
    60
    已通过
    37
    上传者