当前位置:网站首页>成绩排序(华中科技大学考研机试题)(DAY 87)
成绩排序(华中科技大学考研机试题)(DAY 87)
2022-07-30 05:26:00 【张学恒】
1:题目
有 N 个学生的数据,将学生数据按成绩从低到高排序,如果成绩相同则按姓名字符的字典序排序,如果姓名的字典序也相同则按照学生的年龄从小到大排序,并输出 N 个学生排序后的信息。
输入格式
第一行有一个整数 N。
接下来的 N 行包括 N 个学生的数据。每个学生的数据包括姓名(长度不超过 100 的字符串)、年龄(小于等于 100 的正数)、成绩(小于等于 100 的正数)。
输出格式
将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。
然后输出学生信息,按照如下格式:
姓名 年龄 成绩
学生姓名的字母序区分字母的大小写,如 A 要比 a 的字母序靠前(因为 A 的 ASCII 码比 a 的 ASCII 码要小)。
数据范围
1≤N≤1000
输入样例:
3
abc 20 99
bcd 19 97
bed 20 97
输出样例:
bcd 19 97
bed 20 97
abc 20 99
难度:简单
时/空限制:1s / 64MB
总通过数:904
总尝试数:1426
来源:华中科技大学考研机试题
算法标签
2:代码实现
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
int n;
struct Student
{
string name;
int age, score;
bool operator< (const Student& t) const
{
if (score != t.score) return score < t.score;
if (name != t.name) return name < t.name;
return age < t.age;
}
}q[N];
int main()
{
cin >> n;
for (int i = 0; i < n; i ++ )
cin >> q[i].name >> q[i].age >> q[i].score;
sort(q, q + n);
for (int i = 0; i < n; i ++ )
cout << q[i].name << ' ' << q[i].age << ' ' << q[i].score << endl;
return 0;
}
边栏推荐
猜你喜欢
随机推荐
MySql string splitting realizes the split function (field splitting, column switching, row switching)
75. 颜色分类
JVM 类加载机制 超详细学习笔记(三)
Concurrent Programming Review
给小白的 PG 容器化部署教程(下)
美国再次加息75个基点 陷入“技术性衰退”?加密市场却呈现复苏力量
oracle触发器的自治事务
剑指offer(刷题篇12)
2022鹏城杯web
I went to meet some successful people worth tens of millions on May 1st, and I have some new ideas and inspirations
为Bitbucket 和 Sourcetree 设置SSL认证
nacos-2.0.3启动报错出现no datasource set的坑
分布式事务之 LCN框架的原理和使用(二)
An old programmer's summary review of 2020, how to become more awesome in 2021
go版本升级
idea设置自动带参数的方法注释(有效)
工具 | 常用 PostgreSQL 预防数据丢失方案
JVM之GC 调优基础知识(一)
视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支
开源之夏 2022 与您相约!