1077 互评成绩计算 (20 分)

在浙大的计算机专业课中,经常有互评分组报告这个环节。一个组上台介绍自己的工作,其他组在台下为其表现评分。最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平均分记为 G​1​​;老师给这个组的评分记为 G​2​​。该组得分为 (G​1​​+G​2​​)/2,最后结果四舍五入后保留整数分。本题就要求你写个程序帮助老师计算每个组的互评成绩。

#include<iostream>
#include<vector>
using namespace std;
int main ()
{
    int n,m,teacher;
    cin>>n>>m;
    vector<vector<int> >a(n);
    for(int i=0;i<n;i++)
    {
        a[i].resize(n);
    }
    for(int i=0;i<n;i++)
    {
        int max=0,min=m,max1=n-1,min1=n-1,student=0,num=0;
        for(int j=0;j<n;j++)
        {
            cin>>a[i][j];
            if(j!=0&&a[i][j]>=0&&a[i][j]<=m)
            {
               if(a[i][j]>=max)
               {
                   max1=j;
                   max=a[i][j];
               }
               if(a[i][j]<=min)
               {
                   min1=j;
                   min=a[i][j];
               }
            }
        }    
        for(int j=1;j<n;j++)
        {
            if(j!=max1&&j!=min1&&a[i][j]>=0&&a[i][j]<=m)
            {
                student+=a[i][j];
                num++;
            }
        }
        cout<<(int)((student*1.0/num+a[i][0])/2+0.5);
        if(i!=n-1)
        cout<<endl;
    }    
    return 0;
}

猜你喜欢

转载自blog.csdn.net/A0_0A0_0A0_0A/article/details/82957486