2024华为OD机试真题-智能成绩表-(C++/Java/Python)-C卷D卷-100分

2024华为OD机试题库-(A卷+B卷+C卷+D卷)-(JAVA、Python、C++)

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)

题目描述

小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗?

输入描述

第 1 行输入两个整数,学生人数 n 和科目数量 m,0<n<100,0<m < 10

第 2 行输入 m 个科目名称,彼此之间用空格隔开。

  1. 科目名称只由英文字母构成,单个长度不超过 10 个字符。
  2. 科目的出现顺序和后续输入的学生成绩一一对应
  3. 不会出现重复的科目名称

第 3 行开始的 n 行,每行包含一个学生的姓名和该生 m 个科目的成绩 (空格隔开)。

  • 学生不会重名
  • 学生姓名只由英文字母构成,长度不超过 10 个字符
  • 成绩是 0~100 的整数,依次对应第 2 行输入的科目

第 n+2 行,输入用作排名的科目名称。若科目不存在,则按总分进行排序。

输出描述

输出一行,按成绩排序后的学生名字,空格隔开。成绩相同的按照学生姓名字典顺序排序。

示例1

输入

3 2

yuwen shuxue

fangfang 95 90

xiaohua 88 95

minmin 100 82

shuxue

输出

xiaohua fangfang minmin

说明

按 shuxue 成绩排名,依次是 xiaohua、fangfang、minmin

示例2

输入

3 2

yuwen shuxue

fangfang 95 90

xiaohua 88 95

minmin 100 82

xiaoming

输出

fangfang xiaohua minmin

说明

按照总成绩进行排序。

考点

自定义排序

解题思路

1.按照给出科目的成绩进行降序排序,如果没给出科目,按照总成绩降序排序;

然后依次输出排完序后的学生姓名。

代码
c++
#include <bits/stdc++.h>
#include <algorithm>
#include <math.h>
using namespace std;

int index=0;
bool cmp(vector<string> a, vector<string> b) {
    return stoi(a[index+1]) > stoi(b[inde
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

2024剑指offer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值