PAT Basic 1041. 考试座位号(15)(C语言实现)
来源:互联网 发布:淘宝iphone官换机 价格 编辑:程序博客网 时间:2024/06/06 03:13
题目
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。
输入格式:
输入第一行给出一个正整数N(<=1000),随后N行,每行给出一个考生的信息:“准考证号 试机座位号 考试座位号”。其中准考证号由14位数字组成,座位从1到N编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
考生信息之后,给出一个正整数M(<=N),随后一行中给出M个待查询的试机座位号码,以空格分隔。
输出格式:
对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用1个空格分隔。
输入样例:
4
10120150912233 2 4
10120150912119 4 1
10120150912126 1 3
10120150912002 3 2
2
3 4
输出样例:
10120150912002 2
10120150912119 1
思路
这道题是按试机号码查找,在存储的时候直接将试机号码当做索引存储到相应的位置就好了。
如果是按学号查找,估计就变成哈希表了吧。
代码
#include <stdio.h>#include <stdlib.h>typedef struct student *Student;struct student{ char ID[15]; int test; int exam;};int main(){ int N, M, test; scanf("%d", &N); Student *students = (Student*)malloc(N * sizeof(Student)); for(int i = 0; i < N; i++) { Student s = (Student)malloc(sizeof(struct student)); scanf("%s %d %d", s->ID, &s->test, &s->exam); students[s->test] = s; /* set order by test number */ } scanf("%d", &M); for(int i = 0; i < M; i ++) { scanf("%d", &test); printf("%s %d\n", students[test]->ID, students[test]->exam); } for(int i = 0; i < N; i++) free(students[i]); free(students); return 0;}
阅读全文
0 0
- PAT Basic 1041. 考试座位号(15)(C语言实现)
- PAT (Basic Level) Practise (中文)1041. 考试座位号(15) C语言
- PAT (Basic Level)1041. 考试座位号
- PAT BASIC LEVEL 1041. 考试座位号(15)
- PAT (Basic Level) Practise (中文)1041. 考试座位号(15)
- PAT (Basic Level) Practise (中文) 1041. 考试座位号(15)
- PAT (Basic Level) Practise (中文)1041. 考试座位号(15)
- PAT:考试座位号(C++)
- PAT(basic level) 1041 考试座位号(15)
- PAT(Basic Level)_1041_考试座位号
- 【PAT】1041. 考试座位号(15)
- Java - PAT - 1041. 考试座位号(15)
- 1041. 考试座位号(15) PAT 乙级
- PAT乙级.1041. 考试座位号(15)
- PAT 乙级 1041. 考试座位号(15)
- PAT-1041. 考试座位号(15)
- PAT 乙级 1041. 考试座位号(15)
- PAT-B 1041. 考试座位号(15)
- PAT Basic 1037. 在霍格沃茨找零钱(20)(C语言实现)
- 学习淘淘商城第七十一课(网页静态化-freemarker模板改造)
- PAT Basic 1038. 统计同成绩学生(20)(C语言实现)
- PAT Basic 1039. 到底买不买(20)(C语言实现)
- PAT Basic 1040. 有几个PAT(25)(C语言实现)
- PAT Basic 1041. 考试座位号(15)(C语言实现)
- PAT Basic 1042. 字符统计(20)(C语言实现)
- PAT Basic 1043. 输出PATest(20)(C语言实现)
- 2017.5.18
- PAT Basic 1044. 火星数字(20)(C语言实现)
- PAT Basic 1046. 划拳(15)(C语言实现)
- PAT Basic 1047. 编程团体赛(20)(C语言实现)
- PAT Basic 1048. 数字加密(20)(C语言实现)
- PAT Basic 1049. 数列的片段和(20)(C语言实现)