PTA 互评成绩

学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。

输入格式:

输入第一行给出3个正整数N(3 N ≤,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。

输出格式:

按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。

输入样例:

6 5 3
88 90 85 99 60
67 60 80 76 70
90 93 96 99 99
78 65 77 70 72
88 88 88 88 88
55 55 55 55 55
 

输出样例:

87.667 88.000 96.000

 1 #include<stdio.h>
 2 int main(){
 3     int a,b,c,i,j,f=0;
 4     float data[10002],n,sum=0,temp,max=0,min=100;
 5     scanf("%d %d %d",&a,&b,&c);
 6     for(i=0;i<a;i++){
 7         sum=0;
 8         max=0;
 9         min=100;
10         for(j=0;j<b;j++){
11             scanf("%f",&n);
12             sum+=n; 
13             if(n>max){
14                 max=n;
15             }
16             if(n<min){
17                 min=n;
18             }
19         }
20         data[i]=sum-max-min;
21         data[i]/=(b-2);
22     }
23     for(i=0;i<a-1;i++){
24         for(j=a-1;j>i;j--){
25             if(data[j-1]>data[j]){
26                 temp = data[j];
27                 data[j] = data[j-1];
28                 data[j-1] = temp;
29             }
30         }
31     }
32     for(i=a-c;i<a;i++){
33         if(!f){
34         printf("%.3f",data[i]);
35         f++;
36         }else{
37         printf(" %.3f",data[i]);
38         }
39     }
40     return 0;
41 }

 

posted @ 2021-04-07 15:53  弈星  阅读(120)  评论(0)    收藏  举报