蓝桥杯 算法训练 ALGO-141 P1102

算法训练 P1102  
时间限制:1.0s   内存限制:256.0MB
  定义一个学生结构体类型student,包括4个字段,姓名、性别、年龄和成绩。然后在主函数中定义一个结构体数组(长度不超过1000),并输入每个元素的值,程序使用冒泡排序法将学生按照成绩从小到大的顺序排序,然后输出排序的结果。
  输入格式:第一行是一个整数N(N<1000),表示元素个数;接下来N行每行描述一个元素,姓名、性别都是长度不超过20的字符串,年龄和成绩都是整型。
  输出格式:按成绩从小到大输出所有元素,若多个学生成绩相同则成绩相同的同学之间保留原来的输入顺序。
输入:
  3
  Alice female 18 98
  Bob male 19 90
  Miller male 17 92

输出:
  Bob male 19 90
  Miller male 17 92
  Alice female 18 98
 
示例代码:
 1 import java.io.BufferedReader;
 2 import java.io.IOException;
 3 import java.io.InputStreamReader;
 4 import java.util.StringTokenizer;
 5 
 6 public class Main {
 7     public static void main(String[] args) throws IOException{
 8         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 9         int n = Integer.parseInt(br.readLine());
10         
11         Student[] stu = new Student[n];    //保存学生信息
12         
13         for(int i = 0 ; i < n ; i++){
14             stu[i] = new Student();
15             String  s = br.readLine();
16             StringTokenizer stn = new StringTokenizer(s);    //StringTokenizer类允许应用程序将字符串分解为标记
17                                                             //将输入的一行字符分解,然后赋给每个变量
18             stu[i].name = stn.nextToken();
19             stu[i].sex = stn.nextToken();
20             stu[i].age = Integer.parseInt(stn.nextToken());
21             stu[i].score = Integer.parseInt(stn.nextToken());
22         }
23         
24         //冒泡排序
25         for(int i = 0 ; i < n ; i++){
26             for(int j = 1 ; j < n-i ; j++){
27                 Student student = new Student();
28                 if(stu[j-1].score > stu[j].score){
29                     student = stu[j-1];
30                     stu[j-1] = stu[j];
31                     stu[j] = student;
32                 }
33             }
34         }
35         //输出排序后的学生信息
36         for(int i = 0 ; i < n ; i++){
37             System.out.println(stu[i].name +" " + stu[i].sex + " "
38                              + stu[i].age + " " + stu[i].score);
39         }
40     }
41     
42     static class Student{
43         public String name;
44         public String sex;
45         public int age;
46         public int score;
47     }
48 }
原文地址:https://www.cnblogs.com/cao-lei/p/6686441.html