【 题目描述 】
有N个学生的数据,将学生数据按成绩由低到高排序,如果成绩相同则按姓名字符的字母序(A-Z,a-z)排序,如果姓名的字母序也相同则按照学生的年龄排序(由小到大排序),并输出N个学生排序后的信息。(提示,存在多组信息输入输出)
【 输入 】
测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据。
每个学生的数据包括姓名(长度不超过100的字符串)、年龄(整形数)、成绩(小于等于100的正数)。
【 输出 】
将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。
然后输出学生信息,按照如下格式:
姓名 年龄 成绩
【 样例输入 】
3
zhao 19 90
qian 20 90
sun 19 100
【 样例输出 】
qian 20 90
zhao 19 90
sun 19 100
非常简单的排序AC代码:
#include <bits/stdc++.h>
using namespace std;
struct s{
char name[101];
int age;
int score;
};
struct s student[1000];
bool y(s a, s b) {
if(a.score!=b.score)
return a.score<b.score;
int flag=strcmp(a.name,b.name);
if(flag=