【每日例题】蓝桥杯 c++ 奖学金
奖学金
题目
题目分析
- 由题目可知,该题涉及到五个属性:学号,语文分数,数学分数,英语分数,总分;由于我们需要通过输入语文、数学、英语分数,经过操作后,输出学号与总分,所以我们可以通过结构体进行存储。
下面是有关结构体的信息:结构体信息
2.下面是排序优先级的要求:
- 先按总分从高到低排序。
- 如果两个同学总分相同,再按语文成绩从高到低排序。
- 如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面
我们可以通过专门使用一个函数来处理该排序是否正确,为了节省时间,我们可以调用sort函数排序,再通过一个函数来确认sort函数排序是否正确
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <iostream> #include <algorithm> using namespace std; struct student { int id; int c,m,e; int sum; }s[300]; bool cmp(student a,student b) { if (a.sum>b.sum) return true ; else if (a.sum<b.sum) return false ; else { if (a.c>b.c) return true ; else if (a.c<b.c) return false ; else { if (a.id>b.id) return true ; else return false ; } } } int main() { int n; cin>>n; for ( int i=1;i<=n;i++) { s[i].id=i; cin>>s[i].c>>s[i].m>>s[i].e; s[i].sum=s[i].c+s[i].m+s[i].e; } sort(s+1,s+n+1,cmp); for ( int i=1;i<=5;i++) { cout<<s[i].id<< ' ' <<s[i].sum<<endl; } return 0; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理