#include <stdio.h> int main() { // 声明变量 int n,k,m,i,j,p,q,num=0; double score[15],sum,aver,t,ans[10002]; // 输入n、k、m的值 scanf('%d %d %d',&n,&k,&m); // 循环n次,表示每个学生的成绩 for(i=0;i<n;i++) { sum=0; // 输入学生的k门成绩 for(j=0;j<k;j++) { scanf('%lf',&score[j]); } // 对成绩进行冒泡排序 for(p=0;p<k-1;p++) { for(q=0;q<k-p-1;q++) { if(score[q]>score[q+1]) { t=score[q]; score[q]=score[q+1]; score[q+1]=t; } } } // 计算去掉最高分和最低分后的平均成绩 for(j=1;j<k-1;j++) { sum+=score[j]; } aver=sum/(k-2); // 将平均成绩存入数组ans中 ans[num++]=aver; } // 对平均成绩进行冒泡排序 for(p=0;p<num-1;p++) { for(q=0;q<num-p-1;q++) { if(ans[q]>ans[q+1]) { t=ans[q]; ans[q]=ans[q+1]; ans[q+1]=t; } } } // 输出第m小的平均成绩及后面的平均成绩 printf('%.3f',ans[num-m]); for(i=num-m+1;i<num;i++) { printf(' %.3f',ans[i]); } return 0; }

C语言代码详解:计算学生去掉最高分和最低分后的平均成绩

原文地址: https://www.cveoy.top/t/topic/qjbU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录