1077 互评成绩计算 (20 分)
思路一:外循环为每个组,内循环为每组的成绩数。一个变量用于接收老师成绩,然后另一个变量用于接收学生评分,接收之后随即判断并相加,然后判断最大最小值。最后在让总数减去最大最小值在求平均数;
思路二:同样结构是双重循环。只不过在内循环中,一个变量用于接收老师成绩,另一个变量用于接收学生评分并判断是否合法,如果合法存入数组中,最后数组排序后直接忽略开头和结尾将其他数相加,然后求平均值;
下面的代码是思路一,有兴趣的童鞋可以自己写一下二。
using namespace std;
int main()
{
int number[101];
int count,sum,mark;
int n,m,t,max,min,teacher;
cin>>n>>m;
for(int i=0;i<n;i++)
{
max=sum=count=0;
min=100;
cin>>teacher;
for(int j=0;j<n-1;j++)
{
cin>>t;
if(t>=0&&t<=m)
{
max=t>max?t:max;
min=t<min?t:min;
sum+=t;
count++;
}
}
sum-=max+min;
count-=2;
mark=(((double)sum/count+teacher)/2+0.5);
cout<<mark<<endl;
}
return 0;
}