出场顺序c++刚需求解

出场顺序

【问题描述】

元宵节晚会上,参加节目表演的同学需要抽签决定出场顺序,序号小的同学先出场,现在已知n(0<n<100)位同学的姓名和抽到的号码(无重复),请将同学们的姓名,按照出场次序输出。

输入:第一行为一个数字n,表示班上有n名同学的信息。

       接下来有n行,每行包括同学的姓名和出场号,以空格隔开。

输出:n行,每行表示一个按照出场号排好的同学姓名。

注:假设班上无同名的学生。

【样例输入】

5

xinyu 4

haomiao 3

tiansen 6

jintao 2

zhangze 5

【样例输出】

jintao

haomiao

xinyu

zhangze

tiansen

解答如下

#include<iostream>
using namespace std;
struct t
{
    string name;
    int number;
}
p[100];
bool num(struct t a,struct t b)
{
    return a.number < b.number;
}
int main()
{
    int n;
    cin >> n;
    for(int j=0; j<n; j++)
    {
        cin >> p[j].name;
        cin >> p[j].number;
    }
    sort(p,p+n,num);
    for(int j=0; j<n; j++)
    {
        cout << p[j].name<< endl;
    }
    return 1;
}