# include & ltstdio.h & gt
# include & ltstring.h & gt
# include & ltmath.h & gt
# include & lt算法& gt
struct?學生{
夏爾?名稱[20];
雙倍?score 1;
雙倍?score2
雙倍?得分3;
雙倍?avg
};
布爾?cmp(學生?& amps1,學生?& amps2){
if(fabs(s1.avg-s2.avg)>0.01)?回歸?s 1 . avg & gt;S2 . avg;
不然呢?回歸?strcmp(s1.name,S2 . name)& lt;0;
}
int?main(){
int?n,我;
scanf("%d ",& ampn);
學生?s[n];
for(I = 0;我& ltn;i++){
scanf("%s%lf%lf%lf ",s[i]。姓名& amp得分1。s[i].score2,& amps[i].分數3);
s[i]。avg =(s[I]. score 1+s[I]. score 2+s[I]. score 3)/3;
}
std::sort(s,s+n,CMP);//自己修改排序部分
for(I = 0;我& ltn;i++){
printf("%s?%.2lf\n ",s[i]。姓名,s[i]。avg);
}
}