众所周知,这是一道通过struct结构体进行排序的题目

思路:平常的输入。。

  然后定义一个结构体grade,存放每个学生的学号、三科成绩、(也可以只存语文成绩和总分和学号)

自定义cmp函数,通过三层判断来确定排序的先后顺序,然后输出前五个学生

易错点

1.把学号当编号存而不是存入结构体里面,这样在sort之后就重新改变学号了,学号和人就不对应了

2.在定义cmp时搞错顺序(大于小于号)

上AC代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
struct grade{
int chinese,math,eng,xuehao;//都能读懂什么意思吧
}human[];//people也可以
inline bool cmp0(grade a,grade b){//核心cmp0
if(a.chinese+a.math+a.eng!=b.chinese+b.eng+b.math)
//在不相等情况下的话 执行下一行程序,无论是大于还是小于都不执行
return a.chinese+a.math+a.eng>b.chinese+b.eng+b.math;
else if(a.chinese!=b.chinese)return a.chinese>b.chinese;
//在总分相等的情况下执行这个判断,如果语文成绩不相等的话执行按语文成绩从大到小排序
else return a.xuehao<b.xuehao;//如果语文相等,就按学号从小到大排序
//为什么这里多一个从小到大...好坑人
}
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d%d%d",&human[i].chinese,&human[i].math,&human[i].eng);
human[i].xuehao=i;
}
sort(human+,human++n,cmp0);
for(int i=;i<=;i++)
printf("%d %d\n",human[i].xuehao,human[i].chinese+human[i].eng+human[i].math);
return ;
}

完结撒花✿✿ヽ(°▽°)ノ✿

希望对各位像我一样的蒟蒻有帮助

推荐一个呗

P1903 奖学金题解的更多相关文章

  1. Noip2005谁拿了最多的奖学金题解

    题解 题目本身没什么好说的. 只是一道普及组的题让我领悟到scanf()读字符的真谛.scanf()函数最奇异的功能就是控制串里除格式化字符串之外的字符.若匹配成功则舍去. 所以我们能够"精 ...

  2. NOIP2007奖学金题解——洛谷1093

    题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高 ...

  3. Codeforces Round #280 (Div. 2) C. Vanya and Exams 贪心

    C. Vanya and Exams Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/492/pr ...

  4. URAL 2056 Scholarship 水题

    ScholarshipTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.a ...

  5. 【luogu P1903 [国家集训队]数颜色】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1903 裸的...带修莫队... 比较麻烦吧(对我来说是的) 两个变量分开记录查询和修改操作. #includ ...

  6. 洛谷题解 P1051 【谁拿了最多奖学金】

    其实很水 链接: P1051 [谁拿了最多奖学金] 注意: 看好信息,不要看漏或看错因为信息很密集 AC代码: 1 #include<bits/stdc++.h>//头文件 2 using ...

  7. 【排序】题解_P1093奖学金

    题目描述 奖学金 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文 ...

  8. 题解 洛谷P1903/BZOJ2120【[国家集训队]数颜色 / 维护队列】

    对于不会树套树.主席树的本蒟蒻,还是老老实实的用莫队做吧.... 其实这题跟普通莫队差不了多远,无非就是有了一个时间,当我们按正常流程排完序后,按照基本的莫队来,做莫队时每次循环对于这一次操作,我们在 ...

  9. P1093 奖学金

    奖学金 题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文 ...

随机推荐

  1. Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)

    一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...

  2. Bresenham’s algorithm( 布兰森汉姆算法)画直线

    Bresenham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在 n 维光栅上最接近的点.这个算法只会用到较为快速的整数加法.减法和位元移位,常用于绘制电脑画面中的直线.是计算机图形学 ...

  3. 自己用canvas写的贪吃蛇代码

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 简述Js中,判断对象为空对象的几种方式

    1.空对象.空引用以及undefined三种概念的区别 空对象:是对象,但它的值是指向没有任何属性的对象的引用, {}是指 不含任何属性 的对象,当然对象属性包括 字面值和函数: 空引用:obj=nu ...

  5. 第七周作业&实验报告5

     实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结 ...

  6. Java实验报告四

    一.实验目的 (1)掌握类的继承方法: (2)变量的继承和覆盖,方法的继承.重载和覆盖实现: 二.实验内容 1)实验代码 import java.util.Scanner; public class ...

  7. HDU 1176 免费馅饼 (动态规划、另类数塔)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. FESCAR

    FESCAR:阿里重磅开源分布式事务解决方案 FESCAR名字的由来:Fast & EaSy Commit And Rollback FESCAR是啥? 被用在微服务架构中的高性能分布式事务解 ...

  9. Java Web - 笔记(1)

    1.web.xml Attribute "xmlns:xsi" must be declared for element type "web-app"相关报错解 ...

  10. 关于 Spring AOP (AspectJ) 你该知晓的一切 (转)

    出处:关于 Spring AOP (AspectJ) 你该知晓的一切