题目

 思路

通过审题我们知道,每个学生都有语文成绩、数学成绩、英语成绩、总分和学号5个量,所以我们可以用结构体来解。首先创建结构体和结构体数组stu,注意到n<300,开大一些(zong为总分)。代码如下:

struct Student{int num;int chinese;int math;int english;int  zong;
}stu[310];

然后我们来写比较函数,这个题有些复杂,不过仔细读题还是很好理解的。代码如下:

bool f(Student x,Student y){if(x.zong==y.zong){if(x.chinese==y.chinese){return x.num<y.num;}else{return x.chinese>y.chinese;}}else{return x.zong>y.zong;}
}

接着是主函数里的输入,可以直接在输入for循环中计算每个学生的总分。具体代码如下:

int n;
cin>>n;
for(int i=0;i<n;i++){cin>>stu[i].chinese>>stu[i].math>>stu[i].english;stu[i].num=i;stu[i].zong=stu[i].chinese+stu[i].math+stu[i].english;
}

最后是排序和输出(注意输出格式)。代码如下:

sort(stu,stu+n,f);
for(int i=0;i<5;i++){cout<<stu[i].num+1<<" "<<stu[i].zong<<endl;
}

完整代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct Student{int num;int chinese;int math;int english;int zong;
}stu[310];bool f(Student x,Student y){if(x.zong==y.zong){if(x.chinese==y.chinese){return x.num<y.num;}else{return x.chinese>y.chinese;}}else{return x.zong>y.zong;}
}
int main(){int n;cin>>n;for(int i=0;i<n;i++){cin>>stu[i].chinese>>stu[i].math>>stu[i].english;stu[i].num=i;stu[i].zong=stu[i].chinese+stu[i].math+stu[i].english;}sort(stu,stu+n,f);for(int i=0;i<5;i++){cout<<stu[i].num+1<<" "<<stu[i].zong<<endl;}return 0;
}

新手上路,请多多指教。

奖学金——信息学奥赛一本通1179题解相关推荐

  1. 【信息学奥赛一本通】题解大全

    信息学奥赛一本通网站:点击这里 [语言及算法基础篇] 第一部分:C++语言 第一章:C++语言入门 T1000    入门测试题目      点击这里 T1001    Hello,World!    ...

  2. 信息学奥赛一本通 1179:奖学金 | 1938:【07NOIP普及组】奖学金 | OpenJudge NOI 1.10 04 | 洛谷 P1093 [NOIP2007 普及组] 奖学金

    [题目链接] ybt 1179:奖学金 ybt 1938:[07NOIP普及组]奖学金 OpenJudge NOI 1.10 04:奖学金 洛谷 P1093 [NOIP2007 普及组] 奖学金 [题 ...

  3. c++信息学奥赛一本通1318题解

    1318:[例5.3]自然数的拆分 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 26590 通过数: 15724 [题目描述] 任何一个大于1的自然数n,总可以拆分成若干个小于 ...

  4. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  5. 信息学奥赛一本通(题解目录)

    信息学奥赛一本通(题解目录) 记录了我从初学者到逐渐熟悉c++的成长之路 信息学奥赛一本通OJ 目录 信息学奥赛一本通(题解目录) 前言 一.语言及算法基础篇 基础(一) C++语言 第一章 C++语 ...

  6. 信息学奥赛一本通1114:白细胞计数 视频题解

    信息学奥赛一本通1114:白细胞计数 视频题解 1114:白细胞计数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 38224 通过数: 12593 [题目描述] 医院采样了某临 ...

  7. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  8. 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂

    信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂 https://blog.csdn.net/mrcrack/article/details/82846727 快速幂取模算法如何实现? h ...

  9. 信息学奥赛一本通 1358:中缀表达式值(expr)

    [题目链接] ybt 1358:中缀表达式值(expr) [题目考点] 1. 表达式求值 中缀表达式转后缀表达式 后缀表达式求值 [解题思路] 由于题目要求做中缀表达式转为后缀表达式,而后求值.那么这 ...

  10. 信息学奥赛一本通 1356:计算(calc)

    [题目链接] ybt 1356:计算(calc) [题目考点] 1. 表达式求值 中缀表达式求值 2. 表达式树 表达式树:一棵表达式树可以表示一系列的运算. 表达式树中的结点包括运算符与数值 str ...

最新文章

  1. android 获取手机GSM/CDMA信号信息,并获得基站信息
  2. 列举一些分析次级代谢物基因簇相关的数据库
  3. 自然语言处理NLP之文本摘要、机器翻译、OCR、信息检索、信息抽取、校对纠错
  4. com:向对象到面向服务
  5. python二十四:python练习题
  6. Visual Studio C++ 画图【极简版】
  7. numpy.exp详解
  8. git/码云上关于项目的一些操作:初始化、克隆、上传修改等
  9. php composer 缓慢,php – 下载Laravel时,Composer非常慢
  10. 测序发展史:150年的风雨历程
  11. .NET Core中的一个接口多种实现的依赖注入与动态选择
  12. html知识收集(一)
  13. mongodb 2php 操作
  14. Oracle导入ixf文件,Shell读取文本批量导出\导入DB2数据
  15. 网站目录爆破的扫描器的思路
  16. Java入门系列-24-实现网络通信
  17. 计算机 画图软件 快捷键大全,教你完整版电脑CAD快捷键大全
  18. 遥感导论(梅安新版)知识点概括
  19. mail163邮箱官网如何注册?
  20. 【费用流】洛谷1251 餐巾计划问题

热门文章

  1. Spring boot 集成邮件通知及线程异步发送
  2. Android-Material-Sloth
  3. HNOI 2015 落忆枫音 题解
  4. Beats:如何在 Elastic Stack 中得到并使用 Root CA Certificate fingerprint
  5. 大奖赛现场统分(哈工大Mooc)
  6. 测试用例编写八大要素
  7. 基于ll库,使用stm32L0系列的内部基准电压来进行ad测量
  8. Shell(Bash)单引号、双引号、不加引号和反引号用法详解
  9. gmail如何配置163邮箱服务器端口,hotmail,gmail,live,QQ,163,yahoo邮箱服务器及端口号,outlook,foxmail 设置...
  10. 腾讯三面:Cookie的SameSite了解吧,那SameParty呢?