package com.unit2.test;
import java.util.Scanner;
public class Chengji {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入学生人数:");
int renshu=in.nextInt();
System.out.println("请输入课程数:");
int courseNum=in.nextInt();
String[] name=new String[renshu];
String[] course=new String[courseNum];
int[][] number=new int[renshu][courseNum];
int[] sum=new int[renshu];
int[] avg=new int[renshu];
String[] str=new String[renshu];
for(int i=0;i<course.length;i++) {//3 0 1 2
System.out.println("请输入第"+(i+1)+"门课程名字");
course[i]=in.next();
}
for(int i=0;i<renshu;i++) {
int s=0;
String str1="";
System.out.println("请输入第"+(i+1)+"个人的名字");
name[i]=in.next();
for(int j=0;j<courseNum;j++) {
System.out.println("请输入第"+name[i]+course[j]+"的成绩为:");
number[i][j]=in.nextInt();
s+=number[i][j];
str1+=number[i][j]+" ";
}
sum[i]=s;
avg[i]=s/courseNum;
str[i]=name[i]+" "+str1+sum[i]+" "+avg[i];//连接所有数组成一个数组
}
/*
从大到小排序,冒泡排序
根据一个数组中的元素的大小将整个数组进行排序
*/
for(int i=0;i<str.length-1;i++) {
for(int j=0;j<str.length-1;j++) {
if(sum[j]<sum[j+1]) {
int t1=sum[j]; String t2=str[j];
sum[j]=sum[j+1]; str[j]=str[j+1];
sum[j+1]=t1; str[j+1]=t2;
}
}
}
System.out.print("学生");
for(int i=0;i<course.length;i++) {
System.out.print(" "+course[i]);
}
System.out.print(" 总分 平均分 排行榜");
System.out.println();
for(int i=0;i<renshu;i++) {
System.out.print(str[i]+" 第"+(i+1)+"名");
System.out.println();
}
System.out.println();
}
}
冒泡排序(Bubble Sort)是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。