1004. 成绩排名 (20)

读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:每个测试输入包含1个测试用例,格式为

第1行:正整数n
第2行:第1个学生的姓名 学号 成绩
第3行:第2个学生的姓名 学号 成绩
… … …
第n+1行:第n个学生的姓名 学号 成绩
其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。

输入样例:
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
输出样例:
Mike CS991301
Joe Math990112

import java.util.Scanner;

class Student{
  private String Name;
  private String NO;
  private int Grade;

  public Student(String name, String nO, int grade) {
    Name = name;
    NO = nO;
    Grade = grade;
  }

  public String getName() {
    return Name;
  }

  public String getNO() {
    return NO;
  }

  public int getGrade() {
    return Grade;
  }
}

public class Main {

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in = new Scanner(System.in);
    int num = in.nextInt();
    Student[] student = new Student[num];
    String name;
    String no;
    int grade;
    for ( int i = 0 ; i < num ; i++ ){
      name = in.next();
      no = in.next();
      grade = in.nextInt();
      student[i] = new Student(name, no, grade);
    }
    int min = student[0].getGrade();
    int max = student[0].getGrade();
    int maxindex = 0;
    int minindex = 0;
    for ( int i = 1 ; i < num ; i++){
      if (student[i].getGrade() > max ){
        max = student[i].getGrade();
        maxindex = i;
      }
      if ( student[i].getGrade() < min){
        min = student[i].getGrade();
        minindex = i; 
      }
    }
    System.out.println(student[maxindex].getName()+" "+student[maxindex].getNO());
    System.out.println(student[minindex].getName()+" "+student[minindex].getNO());
    in.close();
  }

}

这里写图片描述

阅读更多
版权声明:本文为博主原创文章,若需转载,请注明http://blog.csdn.net/qq_30091945 https://blog.csdn.net/qq_30091945/article/details/54378647
所属专栏: PAT认证考试题解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭