结构体和冒泡排序求学生成绩年龄排序

一个班级有N名学生(10 <= N <= 100),每位学生包含姓名、年龄和成绩信息,请按照成绩由高到低输出年龄最小的10名学生的姓名。
注意:假设名字不会超过32个字符,没有同年龄的情况。如果成绩相同,则按照年龄从小到大输出。
输入:
15

mike 10 60.5

jacob 11 65

allen 9 61

daniel 20 80

Liam 5 70

Noah 12 90.1

jacob 31 95

william 50 20.5

Alexander 8 55

Henry 100 30.5

Owen 85 15

Matthew 98 95

Levi 15 91

Isaac 21 80

Matthew 18 65
输出:
Levi Noah daniel Isaac Liam jacob Matthew allen mike Alexander

请问用结构体和冒泡循环怎么写呢?
冒泡循环我循环的出递增的“成绩”数组,怎么按照年龄的顺序对应输出“姓名”呢?

定义一个prescore=0,cnt=1 做完成绩从高到低排序后 相同的成绩肯定是连续的

float a[N];//表示有序的成绩 
float prescore=0;
int cnt=1;
for(int i=0;i<N;i++){
    if(prescore!=a[i]){
        if(cnt>1){
            for(int j=i-cnt;j<i;j++){
                //相同成绩根据年龄做排序; 
            }
            cnt=1; 
        }
        else cnt = 1;
        prescore=a[i];
    }
    else if(prescore==a[i]) cnt++;
}

大致思路是这样没代码我也测不了就没细写