JavaScript PAT乙级题解1004成绩排名

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

题解如下:

这个题感觉我写的好繁琐啊,代码不够好,用的方法好憨,不过好歹写出来了

首先最难搞的还是输入输出,如果输入输出不行后续就很难写下去

再就是在截取字符串,把分数截出来转成数字型,放进数组里找出最大最小值的索引号再在inputs中去截取名字和学号输出

希望以后能有进步

居然说我的文章质量低不让我发??简直离谱我这么优秀的小文章

var readline = require('readline');
var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
var num = 0;
var inputs = [];
var arr = []; //arr 分数数组
rl.on('line',function(data) {
    if(num == 0) {
        num = Number(data.trim());
    } else {
        inputs.push(data.trim());
        if(num == inputs.length) {
            deal(inputs);
            inputs.length = 0;
            num = 0;
        }
    }
});
function deal(inputs) {
    var result = '';
    //把分数存到数组里面
    for(var i = 0; i < inputs.length; i++) {
        arr[i] = parseInt(inputs[i].slice(inputs[i].lastIndexOf(' ')+1));
    }
//     求最大最小值
    var max = arr[0];
    var maxNum = 0;
    var min = arr[0];
    var minNum = 0;
    for(var i = 0; i < arr.length; i++) {
        if(arr[i] > max) {
            max = arr[i];
            maxNum = i;
        }
        if(arr[i] < min) {
            min = arr[i];
            minNum = i;
        }
    }
    console.log(inputs[maxNum].slice(0, inputs[maxNum].lastIndexOf(' ')));
    console.log(inputs[minNum].slice(0, inputs[minNum].lastIndexOf(' ')));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值