描述
对于给出的 n 位同学的姓名和成绩,根据输入要求,按成绩升序或降序排列。
输入描述:
第一行输入一个整数 n(1≦n≦200) 代表学生人数。
第二行输入一个整数 op(0≦op≦1) 代表排序方式,其中,0 表示按成绩降序,1 表示按成绩升序。
此后 n 行,第 i 行输入一个长度为 1≦len(si)≦20、由大小写字母混合构成的字符串 si 代表第 i 个学生的姓名。随后,在同一行输入一个整数 ai(1≦ai≦100) 代表这个学生的成绩。
除此之外,保证输入数据中不存在重复的学生姓名。
输出描述:
根据输入的排序方式,按照成绩升序或降序输出所有学生的姓名和成绩。对于每一名学生,新起一行。输出学生的姓名和成绩,用空格分隔。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let len = await readline(); // 人数
let sort = Number(await readline()); // 排序方式
let infos = [];
// 格式化并压入数组
for (let i = 0; i < len; i++) {
let info = (await readline()).split(" ");
infos.push([info[0], Number(info[1])]);
}
// 排序
infos.sort((a, b) => (sort ? a[1] - b[1] : b[1] - a[1]));
infos.forEach((item) => {
console.log(item.join(" "));
});
})();