5-41 PAT排名汇总 (25分)
来源:互联网 发布:安装java后怎么运行 编辑:程序博客网 时间:2024/04/29 22:55
5-41 PAT排名汇总 (25分)
计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。
每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。
现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。
输入格式:
输入的第一行给出一个正整数N(≤100),代表考点总数。随后给出N个考点的成绩,格式为:首先一行给出正整数K(≤300),代表该考点的考生总数;随后K行,每行给出1个考生的信息,包括考号(由13位整数字组成)和得分(为[0,100]区间内的整数),中间用空格分隔。
输出格式:
首先在第一行里输出考生总数。随后输出汇总的排名表,每个考生的信息占一行,顺序为:考号、最终排名、考点编号、在该考点的排名。其中考点按输入给出的顺序从1到N编号。考生的输出须按最终排名的非递减顺序输出,获得相同分数的考生应有相同名次,并按考号的递增顺序输出。
输入样例:
251234567890001 951234567890005 1001234567890003 951234567890002 771234567890004 8541234567890013 651234567890011 251234567890014 1001234567890012 85
输出样例:
91234567890005 1 1 11234567890014 1 2 11234567890001 3 1 21234567890003 3 1 21234567890004 5 1 41234567890012 5 2 21234567890002 7 1 51234567890013 8 2 31234567890011 9 2 4
思路
比较懒,喜欢直接调用库函数qsort。先分段快排每个考点的学生排名,最后把所有考点整合起来再调用快排。然后就输出了。
点击访问 PTA-测验
#include <stdio.h>#include<stdlib.h>#include<string.h>/* 评测结果 时间 结果 得分 题目 编译器 用时(ms) 内存(MB) 用户2016-08-30 12:10 答案正确 25 5-41 gcc 41 3 569985011测试点结果 测试点 结果 得分/满分 用时(ms) 内存(MB)测试点1 答案正确 12/12 14 1测试点2 答案正确 6/6 1 1测试点3 答案正确 1/1 21 1测试点4 答案正确 6/6 41 3查看代码*/typedef struct node *Node;struct node { char identifier[14];//考号,第二顺位排序依据 int score;//分数,第一顺位排序依据 int kaodian;//隶属考点 int Sort_kaodian;//考点内排名 int Sort_ToTle;}*Students[30001];int comp(const void*a,const void*b) { Node x=*(Node*)a; Node y=*(Node*)b;// printf("[x%s-%d]",x->identifier,x->score);// printf("[y%s-%d]",y->identifier,y->score); if(x->score!=y->score) { return y->score-x->score; } else { return strcmp(x->identifier,y->identifier); }}int main() { int n;//<=100 scanf("%d",&n); int left=0; int sum=0; for(int i=0; i<n; i++) { int m;//<=300 scanf("%d",&m); left=sum; for(int j=0; j<m; j++) { Students[sum]=(Node)malloc(sizeof(struct node)); scanf("%s%d",&Students[sum]->identifier,&Students[sum]->score); Students[sum++]->kaodian=i+1;// printf("\n{%s-%d}",Students[sum-1]->identifier,Students[sum-1]->score); } qsort(&Students[left],m,sizeof(Node),comp); Students[left]->Sort_kaodian=1; for(int j=left+1; j<sum; j++) { if(Students[j]->score==Students[j-1]->score)Students[j]->Sort_kaodian=Students[j-1]->Sort_kaodian; else Students[j]->Sort_kaodian=j-left+1; } } printf("%d\n",sum); qsort(Students,sum,sizeof(Node),comp); Students[0]->Sort_ToTle=1; for(int i=0; i<sum; i++) { printf("%s",Students[i]->identifier);// printf(" %d",Students[i]->score); if(i) { if(Students[i]->score!=Students[i-1]->score) { Students[i]->Sort_ToTle=i+1; } else { Students[i]->Sort_ToTle=Students[i-1]->Sort_ToTle ; } } printf(" %d",Students[i]->Sort_ToTle ); printf(" %d",Students[i]->kaodian); printf(" %d\n",Students[i]->Sort_kaodian); } return 0;}
0 0
- 5-41 PAT排名汇总 (25分)
- 5-6 PAT排名汇总 (25分)
- 5-4 PAT排名汇总 (25分)
- PAT排名汇总 (25分)
- 7-41 PAT排名汇总(25 分)
- PAT排名汇总(25 分)
- 7-21(排序) PAT排名汇总(25 分)
- PTA 7-21(排序) PAT排名汇总(25 分)25分代码
- PAT排名汇总
- PTA PAT排名汇总
- PAT排名汇总
- PAT排名汇总
- PAT7-07. PAT排名汇总
- 7-21 PAT排名汇总
- 7-07. PAT排名汇总(25) (结构体 ZJU_PAT)
- 5-15 PAT Judge (25分)
- 5-19 PAT Judge (25分)
- 10-排序5 PAT Judge (25分)
- 单例模式的懒汉式
- Android 日常开发总结的技术经验 60 条
- Instruments使用
- JavaScript 笔记 --- 语法结构
- JVM调优总结(6):新一代的垃圾回收算法
- 5-41 PAT排名汇总 (25分)
- 工作随笔——壹(关于MYSQL数据库中字符串与字符串匹配问题)
- React Native获取移动设备信息(react-native-device-info)如何使用?
- NAT配置与管理——1
- POJ2263 Heavy Cargo用最短路得到最大流
- day15泛型
- fragment引用EventBus 多次调用问题
- shiro学习-shiro集成cas
- UOJ 12 [UER #1]猜数