P1004 成绩排名
转跳点:
这道题就比较简单了,大概就考察了结构体的使用,也没有其他的了,连排序的必要的没有。让我们来看一下题目
同样,需求很明显,要输出最高分和最低分人的学号姓名。那这样子处理方案就很明显了,先把数据输进去再用qsort排个序,输出数组第一个和最后一个,完事。不过我们得知道 stdlib 里的 去sort如何使用给或者是自己写一个排序算法。排序算法和qsort我在博客其他文章里有介绍,在这里不做赘述,转跳U•ェ•*U。
代码如下:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #define MAX_SIZE 12
4 #define MAX_STD_SEIZE 150
5
6 typedef struct data
7 {
8 char name[MAX_SIZE];
9 int ID[MAX_SIZE];
10 int Mark;
11 } STD;
12
13 int cmp(const void *a, const void *b);
14
15 int main()
16 {
17 int n, i = 0;
18 int Min_Mark = 100, Max_Mark = 0;
19 int Min_Pos, Max_Pos;
20 scanf("%d", &n);
21 STD Student[MAX_STD_SEIZE];
22
23 for (int i = 0; i < n; i++)
24 {
25 scanf("%s %s %d", Student[i].name, Student[i].ID, &Student[i].Mark);
26 getchar();
27 }
28 qsort(Student, n, sizeof(Student[0]), cmp);
29 printf("%s %s\n", Student[0].name, Student[0].ID);
30 printf("%s %s\n", Student[n-1].name, Student[n-1].ID);
31
32 return 0;
33 }
34
35 int cmp(const void *a, const void *b)
36 {
37 return (* (STD *) a).Mark > (* (STD *) b).Mark ? -1 : 1;
38 }
内置快排
其实这道题不一定要排序,我们可以在输入的时候定义四个变量分别存储最大值、最小值、最大值索引,最小值索引。输入完就选出了最高分最低分,时间复杂度为O(n),比O(nlogn)的快排更加省事。
代码如下
1 #include <stdio.h>
2 #include <stdlib.h>
3 #define MAX_SIZE 12
4 #define MAX_STD_SEIZE 150
5
6 typedef struct
7 {
8 char name[MAX_SIZE];
9 int ID[MAX_SIZE];
10 int Mark;
11 } STD;
12
13 int main()
14 {
15 int n, i = 0;
16 int Min_Mark = 100, Max_Mark = 0;
17 int Min_Pos, Max_Pos;
18 scanf("%d", &n);
19 STD Student[MAX_STD_SEIZE];
20
21 while (n--)
22 {
23
24 scanf("%s %s %d", Student[i].name, Student[i].ID, &Student[i].Mark);
25 if (Min_Mark > Student[i].Mark)
26 {
27 Min_Pos = i;
28 Min_Mark = Student[i].Mark;
29 }
30 if (Max_Mark < Student[i].Mark)
31 {
32 Max_Pos = i;
33 Max_Mark = Student[i].Mark;
34 }
35 i++;
36 getchar();
37 }
38
39 printf("%s %s\n", Student[Max_Pos].name, Student[Max_Pos].ID);
40 printf("%s %s\n", Student[Min_Pos].name, Student[Min_Pos].ID);
41
42 return 0;
43 }
好了,还是那句话
——前路多艰,诸君共勉!
P1004 成绩排名的更多相关文章
- mysql成绩排名
关于mysql成绩排名,网上大部分只是order by简单排序,忽略了成绩相同并列名次的问题. 定义了一个表score结构为:
- PAT乙级 1004. 成绩排名 (20)
1004. 成绩排名 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入n名学生的姓名.学号.成绩,分 ...
- PAT-乙级-1004. 成绩排名 (20)
1004. 成绩排名 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入n名学生的姓名.学号.成绩,分 ...
- PHP中通过sqlsrv调用存储过程——成绩排名去除重复字段的数据行
培训考试项目中,需要实现考试成绩排名:排名参考项为分数(score降序).参加日期(attendtime升序).第几次参加考试(frequency升序):并且,每个用户只保留一条数据(pid). 考试 ...
- 福州大学软件工程1916|W班 第6次作业成绩排名
作业链接 团队第三次-项目原型设计 评分细则 博客评分标准 在随笔开头,备注小组同学的学号.(1') 文字准确.样式清晰.图文并茂.字数在1000字左右.(10') 原型模型必须采用专用的原型模型设计 ...
- 福州大学软件工程1916|W班 第3次作业成绩排名
作业链接 结对第二次-文献摘要热词统计及进阶需求 评分细则 本次作业由三部分组成(程序满分80,博客满分70,工程能力满分30) 程序评分标准 基础需求 共有7个测试用例,每个满分20分并按照一定的映 ...
- 福州大学软件工程1816 | W班 第1次作业成绩排名
1.作业地址 第一次作业--准备篇 2.作业要求 (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 你认为过去两年中接触到的课程是否符合你对计算机专业的期待,为什 ...
- 福州大学软件工程1816 | W班 第2次作业成绩排名
作业链接 词频统计基础功能 评分细则 本次个人项目分数由两部分组成(博客分满分40分+程序得分满分60分) 博客评分规则 在文章开头给出你们Fork仓库的Github项目地址.(1') 在开始实现程序 ...
- 福州大学软件工程1816 | W班 第3次作业成绩排名
写在前面 汇总成绩排名链接 1.作业链接 第三次作业--原型设计(结对第一次) 2.评分准则 本次作业总分 25分,由以下部分组成: (1)在随笔开头请加上该博客链接,以方便阅读时查看作业需求,并备注 ...
随机推荐
- 【PAT甲级】1012 The Best Rank (25 分)
题意: 输入两个整数N,M(<=2000),接着分别输入N个学生的ID,C语言成绩,数学成绩和英语成绩. M次询问,每次输入学生ID,如果该ID不存在则输出N/A,存在则输出该学生排名最考前的一 ...
- CSP2019 括号树
Description: 给定括号树,每个节点都是 ( 或 ) ,定义节点的权值为根到该节点的简单路径所构成的括号序列中不同合法子串的个数(子串需要连续,子串所在的位置不同即为不同.)与节点编号的乘积 ...
- RabbitMQ通过http API获取队列消息数量等信息
参考 RabbitMQ提供了HTTP API手册,发现其中有获取队列情况的API.(本地的API手册地址为:http://localhost:15672/api) 所有API调用都需要做权限验证,需在 ...
- Xcode Edit Schemes
关于本文:有关“Xcode Edit Schemes”的设置,还是有很大的学问的.由于时间关系,我一点一点的补充. 1.在开发的时候,至少将Run的Build Configuration设置为Debu ...
- iOS下JS与OC互相调用
背景情况: app项目中有几个界面是需要经常变动的(不仅是内容还有UI布局等),比如活动宣传界面就是属于这一类.但是由于AppStore提交审核也是需要时间的,就算审核快,也不至于每次都为了这点事频繁 ...
- Java并发编程:Java内存模型JMM
简介 Java内存模型英文叫做(Java Memory Model),简称为JMM.Java虚拟机规范试图定义一种Java内存模型来屏蔽掉各种硬件和系统的内存访问差异,实现平台无关性. CPU和缓存一 ...
- HTTP报文结构及Cookie、session区别
目录 万维网 HTTP超文本传输协议 特点 HTTP的报文结构. 下面介绍http请求报文最主要的一些特点 在服务器上存放用户的信息(Cookie) 实例: 工作原理: cookie中的主要内容: C ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:将悬停的颜色应用在行或者单元格上
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 3676: [Apio2014]回文串 求回文串长度与出现次数的最大值
「BZOJ3676」[Apio2014] 回文串 Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所 ...
- 【剑指Offer面试编程题】题目1366:栈的压入、弹出序列--九度OJ
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...