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 }
本文来自博客园,作者:弈星,转载请注明原文链接:https://www.cnblogs.com/8023yyl/p/14628114.html

浙公网安备 33010602011771号