PAT乙级:1004 成绩排名(Java)

PAT乙级:1004 成绩排名(Java)

微信公众号请搜索:【Codeplus】

作者 CHEN, Yue
单位 浙江大学
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

描述:读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
在这里插入图片描述

题解:通过一个while循环控制依次输入一位同学的所有信息,将这些信息存储为一个字符串形式,这个字符串通过调用split()方法使用空格作为字符串分隔符,将这个字符串转换为字符数组,字符数组最后一个即是输入的成绩的字符串形式,再将其转换为整型,进行比较,找出最高分与最低分,最后的输出信息为姓名和学号,即重新合并字符数组成一个字符串形式输出。

完整代码:

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt(); //键盘输入获取学生个数
        int max = 0, min = 100;   //设置最高分和最低分的初始值
        String maxInfo = "", minInfo = "";
        //nextLine()读取了上一次输入nextInt()留下的“\n”,所以没有给用户输入(软件认为用户输了一个”\n”),而是直接换行了
        scanner.nextLine();//消除换行符影响,提前吞掉空格,防止后面吞掉
        while (number > 0) {
            //使用split()方法将输入的字符串以空格为间隔符将字符串分成字符数组
            String[] str = scanner.nextLine().split(" ");
            //str[2]中存取的是分数字符,转换为整型
            int score = Integer.parseInt(str[2]);
            String info = str[0] + " " + str[1];//将姓名和学号合并一个字符串
            //比较分数,交换分数以及字符串信息
            if (score > max) {
                max = score;
                maxInfo = info;
            }
            if (score < min) {
                min = score;
                minInfo = info;
            }
            number--;
        }
        //输出结果
        System.out.println(maxInfo);
        System.out.println(minInfo);
    }
}

提交结果:
在这里插入图片描述

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FEI..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值