解题思路:
利用STL中的sort函数即可很简单实现。
(1)先按照总分排序;
(2)总分相同再按照语文排序;
(3)语文相同,则按照学号排序。
(4)输出前5项即可。
参考代码:
#include <bits/stdc++.h> using namespace std; typedef struct { int num; //学号 int score[3]; //三门成绩,分别是语文,数学,英语 int sum; //总分 }Student; bool cmp(Student s1,Student s2) { if(s1.sum!=s2.sum) return s1.sum>s2.sum ; if(s1.score[0]!=s2.score[0]) return s1.score[0]>s2.score[0]; return s1.num<s2.num; } int main() { int n; Student s[305]; cin>>n; for(int i=0;i<n;i++) { s[i].sum=0; for(int j=0;j<3;j++) { cin>>s[i].score[j]; s[i].sum+=s[i].score[j]; } s[i].num=i+1; } sort(s,s+n,cmp); for(int i=0;i<5;i++) { cout<<s[i].num<<" "<<s[i].sum<<endl; } return 0; }
0.0分
0 人评分
C语言考试练习题_一元二次方程 (C语言代码)浏览:773 |
拆分位数 (C语言代码)浏览:1361 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:603 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1327 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1482 |
核桃的数量 (C语言代码)浏览:726 |
愚蠢的摄影师 (C++代码)浏览:980 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:1100 |
核桃的数量 (C语言代码)浏览:893 |