一个班级有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++;
}
大致思路是这样没代码我也测不了就没细写