• 蓝桥杯 算法训练 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 }
  • 相关阅读:
    简单的模板解析函数
    HTML通过事件传递参数到js 二 event
    HTML通过事件传递参数到js一
    通过this获取当前点击选项相关数据
    LeetCode 20. 有效的括号(Valid Parentheses)
    LeetCode 459. 重复的子字符串(Repeated Substring Pattern)
    LeetCode 14. 最长公共前缀(Longest Common Prefix)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    LeetCode 171. Excel表列序号(Excel Sheet Column Number) 22
    LeetCode 665. 非递减数列(Non-decreasing Array)
  • 原文地址:https://www.cnblogs.com/cao-lei/p/6686441.html
Copyright © 2020-2023  润新知