题目描述
B大学制定了新的本科教学质量的评估标准来评价老师的教学质量。标准就是每个老师所教的学生成绩的平均值。现在就请你写一段程序计算一下这个平均值。
输入
第一行为一个整数n(0<n),代表有n个老师,后边n行每一行代表一个老师的数据,格式为若干个正整数(至少有2个),第一个整数为m(0<m<1000),代表该老师所教的学生数量,后边为m个正整数代表每个学生的成绩。
输出
共n行,每行为一个老师的数据(只包含学生的成绩不包含前边那个学生的个数,这些成绩按输入顺序输出)。老师信息的输出顺序为按每个老师的学生的平均成绩由低到高输出,也就是说先输出学生平均成绩低的老师的数据,后输出学生平均成绩高的老师的数据(计算平均成绩时用C语言的整数除法即可,也就是说所有计算过程中不需要用到浮点数)。测试数据保证没有平均分相同的老师,且运算中所有整数可以用 int 存储。
样例输入
5 7 58 55 88 74 95 98 86 3 90 65 78 2 70 58 5 17 62 69 83 32 9 51 66 42 98 13 85 87 97 60
样例输出
17 62 69 83 32 70 58 51 66 42 98 13 85 87 97 60 90 65 78 58 55 88 74 95 98 86
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int num = input.nextInt();
int [][] array = new int[num][];//[老师][学生]分数
int [] arrayy = new int[num];//平均分
//取值
for(int j=0;j<num;j++){
int sum=0;
int stu = input.nextInt();//学生数
int[] x=new int[stu];
array[j]=x;//二维数组第二维长度本来为空,这里依次赋给需要的长度(即学生数
for(int i=0;i<stu;i++) {
array[j][i]=input.nextInt(); //获取分数
sum+=array[j][i];//统计分数和,用于平均值计算
}
arrayy[j]=sum/stu;//平均值
}
//排序 通过给平均值组排序的规则,对分数组同步进行排序
for (int i = 0; i < arrayy.length-1; i++) {
for (int j = 0; j < arrayy.length-i-1; j++) {
if(arrayy[j]>arrayy[j+1]) {
int temp = arrayy[j];
int[] tempp=array[j];
arrayy[j] = arrayy[j+1];
array[j] = array[j+1];
arrayy[j+1] = temp;
array[j+1] = tempp;
}
}
}
//输出
for(int i=0;i<num;i++) {
for(int j=0;j<array[i].length;j++) {
if(array[i][j]!=0) {
System.out.print(array[i][j]+" ");
}
}
System.out.println("");
}
}
}