奖学金——信息学奥赛一本通1179题解
题目
思路
通过审题我们知道,每个学生都有语文成绩、数学成绩、英语成绩、总分和学号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题解相关推荐
- 【信息学奥赛一本通】题解大全
信息学奥赛一本通网站:点击这里 [语言及算法基础篇] 第一部分:C++语言 第一章:C++语言入门 T1000 入门测试题目 点击这里 T1001 Hello,World! ...
- 信息学奥赛一本通 1179:奖学金 | 1938:【07NOIP普及组】奖学金 | OpenJudge NOI 1.10 04 | 洛谷 P1093 [NOIP2007 普及组] 奖学金
[题目链接] ybt 1179:奖学金 ybt 1938:[07NOIP普及组]奖学金 OpenJudge NOI 1.10 04:奖学金 洛谷 P1093 [NOIP2007 普及组] 奖学金 [题 ...
- c++信息学奥赛一本通1318题解
1318:[例5.3]自然数的拆分 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 26590 通过数: 15724 [题目描述] 任何一个大于1的自然数n,总可以拆分成若干个小于 ...
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 信息学奥赛一本通(题解目录)
信息学奥赛一本通(题解目录) 记录了我从初学者到逐渐熟悉c++的成长之路 信息学奥赛一本通OJ 目录 信息学奥赛一本通(题解目录) 前言 一.语言及算法基础篇 基础(一) C++语言 第一章 C++语 ...
- 信息学奥赛一本通1114:白细胞计数 视频题解
信息学奥赛一本通1114:白细胞计数 视频题解 1114:白细胞计数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 38224 通过数: 12593 [题目描述] 医院采样了某临 ...
- 信息学奥赛一本通 提高篇 第5章 矩阵乘法
例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂
信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂 https://blog.csdn.net/mrcrack/article/details/82846727 快速幂取模算法如何实现? h ...
- 信息学奥赛一本通 1358:中缀表达式值(expr)
[题目链接] ybt 1358:中缀表达式值(expr) [题目考点] 1. 表达式求值 中缀表达式转后缀表达式 后缀表达式求值 [解题思路] 由于题目要求做中缀表达式转为后缀表达式,而后求值.那么这 ...
- 信息学奥赛一本通 1356:计算(calc)
[题目链接] ybt 1356:计算(calc) [题目考点] 1. 表达式求值 中缀表达式求值 2. 表达式树 表达式树:一棵表达式树可以表示一系列的运算. 表达式树中的结点包括运算符与数值 str ...
最新文章
- android 获取手机GSM/CDMA信号信息,并获得基站信息
- 列举一些分析次级代谢物基因簇相关的数据库
- 自然语言处理NLP之文本摘要、机器翻译、OCR、信息检索、信息抽取、校对纠错
- com:向对象到面向服务
- python二十四:python练习题
- Visual Studio C++ 画图【极简版】
- numpy.exp详解
- git/码云上关于项目的一些操作:初始化、克隆、上传修改等
- php composer 缓慢,php – 下载Laravel时,Composer非常慢
- 测序发展史:150年的风雨历程
- .NET Core中的一个接口多种实现的依赖注入与动态选择
- html知识收集(一)
- mongodb 2php 操作
- Oracle导入ixf文件,Shell读取文本批量导出\导入DB2数据
- 网站目录爆破的扫描器的思路
- Java入门系列-24-实现网络通信
- 计算机 画图软件 快捷键大全,教你完整版电脑CAD快捷键大全
- 遥感导论(梅安新版)知识点概括
- mail163邮箱官网如何注册?
- 【费用流】洛谷1251 餐巾计划问题
热门文章
- Spring boot 集成邮件通知及线程异步发送
- Android-Material-Sloth
- HNOI 2015 落忆枫音 题解
- Beats:如何在 Elastic Stack 中得到并使用 Root CA Certificate fingerprint
- 大奖赛现场统分(哈工大Mooc)
- 测试用例编写八大要素
- 基于ll库,使用stm32L0系列的内部基准电压来进行ad测量
- Shell(Bash)单引号、双引号、不加引号和反引号用法详解
- gmail如何配置163邮箱服务器端口,hotmail,gmail,live,QQ,163,yahoo邮箱服务器及端口号,outlook,foxmail 设置...
- 腾讯三面:Cookie的SameSite了解吧,那SameParty呢?