新人求助!!!C++结构体数组编写,对10名小学生的信息进行管理

学生结构体的成员包括姓名、学号、年龄、语文成绩、数学成绩、英语成绩、三门课总分等,具体要求如下

(1)要求通过键盘完成各位小学生的信息录入(需要具有良好的界面输入提示,例如“现在请输入第1位小学生的信息,现在请输入姓名”之类)

(2)若输入的年龄小于6岁或大于14岁,显示年龄超出有效范围,要求重新输入,三门课程的成绩有效范围为0-100之间,否则显示成绩超出有效范围,要求重新输入

(3)对所有学生的三门课成绩进行总分计算,显示出所有10位学生的完整信息,在第一行需要显示出各列的标题,即姓名,学号,年龄等等这些字段的名称

(4)总分排名,对所有学生的总分进行排名,显示内容包括排名,学生姓名,总分

(5)单科最高分显示,显示三门课程的每一门课最高分的学生信息。

我前三个要求能做到,但是不知道怎么进行排名!!!求助!!!

#include <bits/stdc++.h>//万能头文件

using namespace std;

struct node{
        string name;
        int ch;
        int ma;
        int en;
        int score;
        int age;
}arr[MAXN];

bool pm(node &a, node &b){
    return a.score > b.score;
}

int main(){
    int n;//n 为 学生人数
        /*
        your code
        */
        for (int i = 0; i < n; ++i){
            arr[i].score = arr[i].ch + arr[i].ma + arr[i].en;
        }
    sort(arr, arr + n, pm);
        /*
        your code
        */
        return 0;
}


这就是主要代码