主要问题:
- 审题要清楚,题目一般给出复杂的顺序,要明白怎样排序
- 数据量大,采用scanf、printf
- 平均分并未明说是否需要取整以及取整方式,直接采用总分进行排序即可
排名的实现模板:
一般的排名规则:分数不同排名不同,分数相同排名相同,但是占用一个排位
①. 将排名顺序记录下来
stu[0].r = 1;
for(int i = 1; i < n; i++){
if(stu[i].score == stu[i - 1].score)
stu[i].r = stu[i - 1].r;
else
stu[i].r = i + 1;
}
②. 不需要记录排名,直接输出即可
int r = 1;
for(int i = 0; i < n; i++){
if(i > 0 && stu[i].score != stu[i - 1].score){
r = i + 1;
}
printf("%d", r);
}