题目:题目详情 - L2-015 互评成绩 (25 分) (pintia.cn)
大意
学生互评作业的简单规则是这样定的:每个人的作业会被
k
个同学评审,得到k
个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。
思路
进行sort排序
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k,m,sum;
cin>>n>>k>>m;
double a[30]={0};
double sum[n+10]={0};//注意数组大小
for(int i=0;i<n;i++)
{
for(int j=0;j<k;j++)
{
cin>>a[j];
sum[i]+=a[j];
}
sort(a,a+k);
sum[i]=sum[i]-a[0]-a[k-1];
}
sort(sum,sum+n);
printf("%.3f",sum[n-m]/(k-2));//是按非递减顺序输出最后得分最高的
for(int i=n-m+1;i!=n;i++)
printf(" %.3lf",sum[i]/(k-2));
return 0;
}