代码功能:输入对应数据,经过运行,打印表格,得到所需排名表格
不解释 ,直接贴上java代码:
import java.util.*; public class A5_18 { public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("请输入学生的人数:"); int number1=in.nextInt(); System.out.println("请输入课程的门数:"); int number2=in.nextInt(); String classname[]=new String[number2]; String name[]=new String[number1]; int grades[][]=new int[number1][number2]; int sum[]=new int[number1]; int avg[]=new int[number1]; for(int i=1;i<=number2;i++){ System.out.println("请定义第"+i+"门课是:"); classname[i-1]=in.next(); } for(int i=0;i<number1;i++){ System.out.println("请输入第"+(i+1)+"个学生的姓名:"); name[i]=in.next(); sum[i]=0; for(int j=0;j<number2;j++){ System.out.println("请输入"+name[i]+classname[j]+"的成绩"); grades[i][j]=in.nextInt(); sum[i]+=grades[i][j]; } avg[i]=sum[i]/3; } //排序 int grade[]=new int[number2]; for(int i=0;i<number1-1;i++){ for(int j=i+1;j<number1;j++){ if(sum[i]<sum[j]){ String t; t=name[i]; name[i]=name[j]; name[j]=t;//交换名字 for(int k=0;k<number2;k++){ grade[k]=grades[i][k]; grades[i][k]=grades[j][k]; grades[j][k]=grade[k]; }//交换成绩 int p=sum[i]; sum[i]=sum[j]; sum[j]=p;//交换总分 p=avg[i]; avg[i]=avg[j]; avg[j]=p;//交换平均分 } } } //完成次序排名 System.out.print("学生\t"); for(int i=0;i<number2;i++){ System.out.print(classname[i]+"\t"); } System.out.print("总分\t平均分\t排行榜"); System.out.println(); for(int i=0;i<number1;i++){ System.out.print(name[i]+"\t"); for(int j=0;j<number2;j++){ System.out.print(grades[i][j]+"\t"); } System.out.print(sum[i]+"\t"+avg[i]+"\t"+"第"+(i+1)+"名"); System.out.println(); } } //完成 }