解题思路:结构体类型排序,运用sort函数

注意事项:

自定义比较方法:bool cmp(struct Student &a, struct Student &b)

小于5人,则全部输出


参考代码:

#include<iostream>

#include<algorithm>

using namespace std;

struct Student {

int id;

int score[3];

int sum;

}S[301];//结构体定义,结构体数组


bool cmp(struct Student &a, struct Student &b)

{

if (a.sum != b.sum) return a.sum > b.sum;//总分不相等,按总分从大到小排

if (a.score[0] != b.score[0]) return a.score[0] > b.score[0];//前提总分相等,语文分数不相等,按语文分数从大到小排

else return a.id < b.id;//总分和语文分数都相等,按学号从小到大排

}


int main()

{

int n;

cin >> n;

for (int i = 0; i < n; i++)

{

S[i].sum = 0;//初始化为0

for (int j = 0; j < 3; j++)

{

cin >> S[i].score[j];

S[i].sum += S[i].score[j];

}

S[i].id = i+1;

}

sort(S, S + n, cmp);

for (int i = 0; i < 5&&S[i].sum!=0; i++)//小于5个人则判断其有无成绩,全部输出。

cout << S[i].id << " " << S[i].sum << endl;

return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论