题目描述

每次期末考试成绩出来之前的一段时间大豪哥心里都是痛苦的,总感觉自己会在班上排名特别差。所以当成绩出来以后大豪哥想快点知道班上的总排名,以便知道自己的排名。(PS:大豪哥班上有个学霸名叫日天,又名泰迪,不要问我为什么,因为泰迪的行为决定的)

输入

多组测试数据,至文件结尾。
先输入每个班上有n个同学,这个学期有m门课程(1<=n,m<=100)
接下来有n行,每行的输入格式为学号id,姓名name,课程成绩k1,课程成绩k2... ,课程成绩km.(学号在int型范围以内,0<=ki<=100,姓名长度在20个字符以下)

输出

输出班上每个同学排名,并输出总分及排名(如果总分相同就按学号从小到大输出,但是排名还是相同的)输出格式见样例

样例输入
4 4
1 Taidi 100 100 90 90
2 Dahaoge 60 60 70 60
3 Yeshen 90 90 100 100
4 Wangpangzi 50 60 100 80
样例输出
1 Taidi 100 100 90 90 Sum = 380 Ranking = 1
3 Yeshen 90 90 100 100 Sum = 380 Ranking = 1
4 Wangpangzi 50 60 100 80 Sum = 290 Ranking = 3
2 Dahaoge 60 60 70 60 Sum = 250 Ranking = 4 题解:结构体排序
 #include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
#include <queue>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define INF 0x3f3f3f3f3f
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
ll gcd(ll a,ll b){
return b?gcd(b,a%b):a;
}
const int N=;
const int mod=1e9+;
struct node
{
int id;
string name;
int grade[N];
int sum;
}stu[N];
bool cmp(node a,node b)
{
if(a.sum==b.sum)
return a.id<b.id;
return a.sum>b.sum;
}
int main()
{
int n,m,num;
cin.sync_with_stdio(false);
while(cin>>n>>m){
for(int i=;i<n;i++){
cin>>stu[i].id>>stu[i].name;
stu[i].sum=;
for(int j=;j<m;j++){
cin>>stu[i].grade[j];
stu[i].sum+=stu[i].grade[j];
}
}
sort(stu,stu+n,cmp);
for(int i=;i<n;i++){
cout<<stu[i].id<<" "<<stu[i].name;
for(int j=;j<m;j++){
cout<<" "<<stu[i].grade[j];
}
if(i==) num=;
else if(stu[i].sum!=stu[i-].sum)
num=i+;
cout<<" Sum = "<<stu[i].sum<<" Ranking = "<<num<<endl;
}
}
return ;
}

JustOj 2039: 成绩排名 (结构体排序)的更多相关文章

  1. 洛谷 P1068 分数线划定【结构体排序】

    题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据计划录取人数的150%划 ...

  2. PAT 甲级 1080 Graduate Admission (30 分) (简单,结构体排序模拟)

    1080 Graduate Admission (30 分)   It is said that in 2011, there are about 100 graduate schools ready ...

  3. PAT 乙级 1085. PAT单位排行 (25) 【结构体排序】

    题目链接 https://www.patest.cn/contests/pat-b-practise/1085 思路 结构体排序 要注意几个点 它的加权总分 是 取其整数部分 也就是 要 向下取整 然 ...

  4. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...

  6. 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

  7. 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏

    主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...

  8. hdu1263 水果(结构体排序)

    Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样J ...

  9. <algorithm>里的sort函数对结构体排序

    题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...

随机推荐

  1. 使用RegisterNatives注冊原生代码

    在Android开发本地代码时,有两种方式.一种是使用javah生成头文件.然后编辑源码,还有一种不用生成头文件,直接编辑代码后,使用RegisterNatives方法进行注冊,以下是一个Demo: ...

  2. C# List去重的三种方法

    三种去重的方法 1.List中的元素实现IEquatabe接口,并提供Equals方法和GetHashCode方法. 2.使用表达式 users.Where((x,i)=>users.FindI ...

  3. Redis入门到高可用(一)——初识Redis

    一.Redis是什么 * 开源 * 基于键值的存储服务系统 * 支持多种数据结构 * 高性能,功能丰富 二.Redis特性 ♦️ 概述 * 速度快 * 支持持久化 * 支持多种数据结构 * 支持多种编 ...

  4. 20165236 《Java程序设计》第七周学习总结

    20165236 <Java程序设计>第七周学习总结 教材学习内容总结 第十一章  JDBC与MySQL数据库 1.MySQL数据库管理系统: MySQL数据库管理系统,简称MySQL,是 ...

  5. 共分为六部完成根据模板导出excel操作

    第一步.设置excel模板路径(setSrcPath) 第二步.设置要生成excel文件路径(setDesPath) 第三步.设置模板中哪个Sheet列(setSheetName) 第四步.获取所读取 ...

  6. Java知识点-判断null、空字符串和空格

    Java知识点-判断null.空字符串和空格 // 判断headerKey是否为null,空字符串或者空格 if (headerKey != null && headerKey.len ...

  7. 安装ElasticSearch5.5.2 注意事项

    官方文档中建议生产环境中打开 bootstrap.memory_lock: true 打开之后会报很多错误要优化一下系统参数 vim /etc/security/limits.conf * soft ...

  8. MySQL数据类型--与MySQL零距离接触2-12主键约束

    定义一个主键,可以用PRIMARY KEY,也可以用KEY. 主键约束的字段禁止为空. 写入4条记录,查看它的自动编号: 自动编号确实是1 2 3 4 AUTO_INCREMENT字段必须定义为主键, ...

  9. cocos2dx JS 清除缓存重新编译打包安卓apk

    复制他人工程时打包出错,无法进行.或者是资源缓存问题需要重新编译删除 proj.android 工程下的三个文件夹 frameworks -> runtime-src -> proj.an ...

  10. 连接mysql && ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

    上一篇:mysql服务正在启动 mysql服务无法启动 && mysql启动脚本 mysql关闭脚本 此篇目编写一个核心目的: 1.mysql连接 先抛出一个问题 这是因为mysql服 ...