1.有没有人可以解啊?

现在有一份名单,希望从名单中筛选出可以参加程设竞赛的学生。评判标准是,如果一名学生的成绩大于等于 90 分,就能够入选。如果没达到 90 分,就只能做吃瓜观众一名。
输入要求:若干组数据,每组数据包括学生姓名(长度 l≤20 且只包含小写字母)和成绩(int 范围内)
输出要求:先输出一个值 m,为可以参加竞赛的总人数,然后按照成绩从大到小输出
筛选出的学生名字和成绩(如果成绩相同,则按名字的字典序输出)。
输入样例 1
spylent 67
sans 98
toriel 95
papyrus 95
chara 97
flowey 91


#include <iostream>
#include <algorithm>

using namespace std;

struct stu{
    string name;
    int score;
};
bool cmp(stu a, stu b){
    if(a.score == b.score)
    return a.name < b.name;
    return a.score > b.score;
}
int main()
{
    stu s[5005];
    int m, i = 0;
    cin >> m;
    while(m--)
    {
        string name;
        int sc;
        cin >> name >> sc;
        if(sc >= 90)
        {
            s[i] = {name, sc};
            ++i;
        }
    }
    sort(s,s + i,cmp);
    for(int k = 0; k < i; ++k)
    cout << s[k].name << ' ' << s[k].score << endl;
    return 0;
}

img


如果有帮助的话,点个采纳呗