描述
HEIHEI该上初中了,老师想摸一下同学们的底看看同学们的学习情况,在小学毕业时考了7个科目,现在老师要求班里的每个同学算出他7个科目中最高的成绩、最低的成绩,中间排名的成绩,这三个成绩的平均值,结果保留两位小数。然后同学们把算出的平均值写在纸上交给老师。例如HEIHEI的成绩是 65 78 45 89 90 73 80,那么HEIEHI就应该算出45+90+78的平均值,71.00.
输入
第一行给出一个数n,表示总共有几个同学。(1<=n<=60)
输出
输出占一行,每行输出同学的平均成绩。
样例输入
2
45 65 73 78 80 89 90
82 65 73 88 96 90 80
样例输出
71.00
81.00
#include <stdio.h> /*五个数取最大最小中间数的平均值,保留两位小数*/ int main(void) { /*n组数据*/ int i,j,z,max,n,buf[60][7]={{0}}; scanf("%d", &n); /*读取数据*/ for(i=0; i<n; i++){ for(j=0; j<7; j++){ scanf("%d", &buf[i][j]); } } for(i=0; i<n; i++){ /*选择排序*/ for(j=0; j<7; j++){ max=j; for(z=j+1; z<7; z++){ if(buf[i][max]<buf[i][z]){ max=z; } } if(max != j){ buf[i][max]=buf[i][max]^buf[i][j]; buf[i][j]=buf[i][max]^buf[i][j]; buf[i][max]=buf[i][max]^buf[i][j]; } //printf("%d ", buf[i][j]); } printf("%.2f\n",(float)(buf[i][0]+buf[i][6]+buf[i][3])/(float)3); } }