PAT(初級)1004の順位表(20ポイント)JAVAソリューション

読むのn(> 0)生徒の名前、学生番号、学年、スコアが最も高い出力であり、最低は学生の名前と学生番号を獲得します。

入力フォーマット:

各テストは、テスト入力形式を含みます

1行目:正の整数nは
2行目:最初の学生の名前学生数のスコア
3:2号線学生の名前学生のID達成... ...
...
最初の行のn + 1:n番目の学生の名前学生のID実績

これは名前と学生数は10文字の文字列を超えていないされ、結果はテストケースのセットは、どの2つが同じ生徒の成績ではないことを確実にするために0〜100の整数、です。

出力フォーマット:

各テストケース出力2の場合、1行目は、最高の学生の名前と学生番号をスコアで、二行目は、学生の名前と学生番号を最低得点され、文字列の間にスペースがあります。

サンプル入力:

3
ジョーMath990112 89
マイクCS991301 100
メアリーEE990830 95

出力例:

マイクCS991301
ジョーMath990112

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        scan.nextLine();
        String[] str = new String[n];
        for(int i = 0;i<n;i++){
            str[i]=scan.nextLine();
        }
        int [] a = new int[n];
        for(int i = 0;i<n;i++){
            String[] str1 = str[i].split(" ");
            a[i]=Integer.parseInt(str1[2]);
        }
        int temp;
        String tstr;
        for(int i = 0; i<n-1;i++){
            for(int j = i+1; j<n;j++){
                if(a[i]<a[j]){
                    temp=a[i];
                    tstr=str[i];
                    a[i]=a[j];
                    str[i]=str[j];
                    a[j]=temp;
                    str[j]=tstr;
                }
            }
        }
        String[] str2 = str[0].split(" ");
        String[] str3 = str[n-1].split(" ");

        System.out.print(str2[0]);
        System.out.print(" ");
        System.out.println(str2[1]);

        System.out.print(str3[0]);
        System.out.print(" ");
        System.out.print(str3[1]);
    }
}

ここに画像を挿入説明

公開された82元の記事 ウォンの賞賛1 ビュー1006

おすすめ

転載: blog.csdn.net/qq_44028719/article/details/104310218