• 蓝桥杯 算法训练 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 }
  • 相关阅读:
    windows代码,传入文件名,遍历此目录下所有文件.
    windows,分割路径.得出目录
    windows代码,路径分割
    windows下,读取快捷方式lnk所指向的路径
    【Unity】3.2 利用预设(Prefab)制作可复用的组件
    【Unity】3.1 利用内置的3D对象创建三维模型
    【Unity】3.0 第3章 创建和导入3D模型
    【Unity】2.11 了解游戏有哪些分类对你开阔思路有好处
    【Unity】2.10 利用VS2015编辑Unity的C#脚本
    【Unity】2.9 光源(Lights)
  • 原文地址:https://www.cnblogs.com/cao-lei/p/6686441.html
Copyright © 2020-2023  润新知