1 /** 2 * @author 冰樱梦 3 * 时间:2018年12月 4 * 题目:按考分对学生排序 5 * 6 */ 7 public class Exercise08_03 { 8 public static void main(String args[]) { 9 int names[]=new int[8]; 10 int[] list=new int[8]; 11 // Students' answers to the questions 12 char[][] answers = { 13 {'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}, 14 {'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D'}, 15 {'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D'}, 16 {'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D'}, 17 {'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}, 18 {'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}, 19 {'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}, 20 {'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}}; 21 22 // Key to the questions 23 char[] keys = {'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D'}; 24 25 // Grade all answers 26 for (int i = 0; i < answers.length; i++) { 27 // Grade one student 28 int correctCount = 0; 29 for (int j = 0; j < answers[i].length; j++) { 30 if (answers[i][j] == keys[j]) 31 correctCount++; 32 } 33 list[i]=correctCount; 34 names[i]=i; 35 36 37 } 38 39 BubbleSort(list,names); 40 } 41 42 //冒泡排序从大到小,稍微修改了一下程序,让名字跟着分数一起排序。 43 public static void BubbleSort(int[] scores,int[] names){ 44 for(int i=scores.length-1;i>=0;i--){ 45 for(int j=0;j<scores.length-i-1;j++){ 46 if(scores[j]>scores[j+1]){ 47 int temp=scores[j]; 48 scores[j]=scores[j+1]; 49 scores[j+1]=temp; 50 51 int tem=names[j]; 52 names[j]=names[j+1]; 53 names[j+1]=tem; 54 } 55 } 56 } 57 for(int i=0;i<names.length;i++){ 58 System.out.println("Student " + names[i]); 59 } 60 61 } 62 63 64 65 }