1194: 总成绩排序(结构体专题)

题目描述:
有一学生成绩表,包括学号、姓名、3门课程成绩。请按如下规则排序:按总成绩降序排序,若总成绩相同,则按姓名升序排序。

输入:
首先输入一个整数n(1<=n<=100),表示学生人数;
然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。

输出:
输出排序后的成绩单,格式见输出样例。

样例输入:
3
541207010188 Zhangling 89 78 95
541207010189 Wangli 85 87 99
541207010190 Fangfang 89 88 85

样例输出:
541207010189 Wangli 85 87 99 271
541207010190 Fangfang 89 88 85 262
541207010188 Zhangling 89 78 95 262

代码:

#include<stdio.h>
#include<string.h>
#define SWAP(a,b,t){t = a; a = b; b = t;}typedef struct student{long long num;char name[25];int a,b,c,sum;
}STU;/*先判断总成绩是否相等,相等用字符串比较判断按名字升序,不相等按成绩降序排列*/
int sort(STU s1, STU s2)
{if(s1.sum != s2.sum){if(s1.sum < s2.sum)return 1;elsereturn 0;}else{if(strcmp(s1.name,s2.name) > 0)return 1;elsereturn 0;}
}int main()
{int n, i, j;scanf("%d",&n);STU a[n], temp;for(i = 0; i < n; i++){scanf("%lld",&a[i].num);scanf("%s",a[i].name);scanf("%d %d %d",&a[i].a,&a[i].b,&a[i].c);a[i].sum = a[i].a + a[i].b + a[i].c;}for(i = 0; i < n-1; i++){for(j = i+1; j < n; j++){if(sort(a[i],a[j]))SWAP(a[i],a[j],temp)}}for(i = 0; i < n; i++)printf("%lld %s %d %d %d %d\n",a[i].num,a[i].name,a[i].a,a[i].b,a[i].c,a[i].sum);return 0;
}

定义一个返回int的函数来当排序条件。

ZZULIOJ1194: 总成绩排序(结构体专题)相关推荐

  1. 1183: 平面点排序(一)(结构体专题)C语言

    1183: 平面点排序(一)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 6339 解决: 4077 [状态] [讨论版] [提交] [命题人:admin] 题目描述 平面 ...

  2. ZZULI-1184 平面点排序(二)(结构体专题)

    1184: 平面点排序(二)(结构体专题) Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 1291   Solved: 630 Submit Sta ...

  3. 考试排名(结构体专题)

    考试排名(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的 ...

  4. 1197: 考试排名(一)(结构体专题)

    1197: 考试排名(一)(结构体专题) 时间限制: 1 Sec  内存限制: 128 MB 提交: 59  解决: 70 [提交] [状态] [讨论版] [命题人:eilene] 题目描述 今天浙大 ...

  5. 考试排名(一)(结构体专题)

    考试排名(一)(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将 ...

  6. 1481: 考试排名(一)(结构体专题)

    1481: 考试排名(一)(结构体专题) 1.描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线 ...

  7. 问题 C: 考试排名(一)(结构体专题)

    问题 C: 考试排名(一)(结构体专题) 时间限制: 1 Sec  内存限制: 128 MB 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总 ...

  8. ZZULIOJ 1180-1198结构体专题 参考代码

    一共19道题 虽然是java写的,但是还是用的类似于C的结构体 下面代码供参考 每题前面标的有题号 *1180 成绩统计(结构体专题) 1181 谁的年龄最小(结构体专题) 1182 查询记录(结构体 ...

  9. ZZULIOJ: 1187: 棒棒糖(结构体专题)

    1187: 棒棒糖(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 1006 解决: 790 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 新年快到了,计算机 ...

最新文章

  1. JavaXml教程(六)使用JDOM解析XML文件
  2. HDU hdu 2094 产生冠军 拓扑排序 判定环
  3. Google图解:Chrome 快是有原因的,科普浏览器架构!
  4. linux用8m内存读取1g日志,检查 Linux 中内存使用状况的 8 条命令
  5. VC控件自绘制三步曲
  6. 网页中自动换行问题〔zz〕
  7. mysql快捷创建数据库_mysql数据库快速入门(1)
  8. XML基础——extensible markup language
  9. 沉得住气的程序员们!
  10. 2017.10.24 上升序列 思考记录
  11. python获取服务器文件svn版本信息_如何编程获取SVN版本号?
  12. Android 系统(55)---Android App开发之ANR异常的原因分析及处理总结
  13. GIS概念的总结(一)什么是GIS
  14. 下方向键_求助:Deepin-linux-opencv方向键
  15. Rust : 闭包、move、复制与移动语义
  16. 造假家族覆灭记:警方联合阿里斩断涉案三千万假耐克产销链
  17. 计算机中1kb等于多少字节,1kb等于多少个字节
  18. LPC1768 Flash 存储器加速模块
  19. linux退出文件命令行,linux的top命令详解及退出操作
  20. qt 打印html 分页打印,QT 打印的简单实现

热门文章

  1. sangerbox使用教程_TCGA RNA测序ID转换一文就够
  2. 手动压缩Outlook PST和OST文件
  3. C++笔记 char
  4. 开发者模式(一) 各种姿势进入
  5. 第四章 闪烁探测器----闪烁体、选择原则、光收集系统、PMT、替代产品
  6. 同时拥有多个子域名和主域名?推荐申请GlobalSign SANs SSL证书
  7. 网络天才网页中文版_akinator官方版下载_akinator中文版在线玩-网络天才中文版下载网页版 - Win7旗舰版...
  8. 为什么重写equals方法时一定要重写hashCode方法
  9. Drug Discovery Today| 频繁命中化合物:高通量筛选中需警惕的假阳性结果
  10. 推荐一款学习app:Enki