立志用更少的代码做更高效的表达


每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。

输入格式:

输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。

考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。

输出格式:

对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。

输入样例:

4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4

输出样例:

3310120150912002 2
3310120150912119 1


思路分析:

由于本题是水题, 因此解题思路从解题转向优化。

给自己定的目标是只用一层for循环解决问题, 最初的想法是, 定义一个大数组a, 数组下标为试机座位, 数组内容同时存放学号和考试座位(用取余的方式), 查找时只需输出对应的数组值即可。

提交后显示错误, 我仔细思考了下, 发现如果学号的前几位是0的话, 最后输出不会显示, 因此学号只能用char型数组存储。 于是乎又定义了一个字符数组存储学号, 原理同上。

再次提交, 成功。

下面同时附上正确和错误的代码。


错误代码展示

#include<stdio.h>
long long a[1005];
int main() {int n; scanf("%d", &n);for(int i = 0; i < n; i++) {long long x1, x2, x3;scanf("%lld%lld%lld", &x1, &x2, &x3);a[x2] = x1*10+x3;}int c; scanf("%d", &c);for(int i = 0; i < c; i++) {int x; scanf("%d", &x);printf("%lld %lld\n", a[x]/10, a[x]%10);}return 0;
}

正确代码展示

#include<stdio.h>
#include<string.h>
char s[1005][20];
int a[1005];
int main() {int n; scanf("%d", &n);for(int i = 0; i < n; i++) {int x1, x2;scanf("%s%d%d", s[0], &x1, &x2);strcpy(s[x1], s[0]);a[x1] = x2; }scanf("%d", &n);for(int i = 0; i < n; i++) {int x; scanf("%d", &x);printf("%s %d\n", s[x], a[x]);}
return 0;  }

最近在备考天梯赛, 团体程序设计天梯赛-练习集刷题中, 请持续关注哦~


博主的碎碎念:本来在备考软考, 但总是无法专注,于是跑过来敲敲程序,压力在随着指尖的律动中释放~ 看来编程真的已经变成我的一个兴趣爱好了。

最近刷小视频上瘾, 变得一点也不自律,真验证了那句老话:学如逆水行舟,不进则退, 正在慢慢逼着自己改掉这个坏习惯。 加油!打工人!

L1-005 考试座位号 (15分) C语言实现(18行代码AC!)相关推荐

  1. 团体程序设计天梯赛-练习集L1-005 考试座位号 (15 分)c语言

    L1-005 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该 ...

  2. 7-6 考试座位号 15 分 C语言代码,PAT Basic 1041. 考试座位号(15)(C语言实现)

    我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容.此处文章目前已更新至与Github Pages同步.欢迎star我的repo. 题目 ...

  3. C++学习之路 | PTA乙级—— 1041 考试座位号 (15 分)(精简)

    1041 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生 ...

  4. 7-5 考试座位号 (15 分)

    7-5 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的 ...

  5. L1-005 考试座位号 (15 分)变量要设置对

    L1-005 考试座位号 题目 代码1(char) 代码2(string) 题目 L1-005 考试座位号 (15 分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试 ...

  6. PAT 乙级 1041 考试座位号 (15分)

    1041 考试座位号 (15分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的 ...

  7. L1-005 考试座位号 (15分) 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示

    L1-005 考试座位号 (15分) 每个 PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生 ...

  8. 考试座位号 (15分) PTA(C语言)

    每个 PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试 ...

  9. PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)

    每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...

最新文章

  1. 干货丨人工智能、机器学习和认知计算入门指南
  2. SGU101 求有重边的无向图欧拉迹
  3. history linux 日志服务器_编译bash实现history的syslog日志记录
  4. windows 2008 开机启动 Docker Toolbox 并运行容器
  5. Spring MVC面试题
  6. 腾讯联手华为!将让腾讯游戏越跑越快
  7. MyBatis Demo 编写(2)结果映射转换处理
  8. ubuntu下显示文件按数字排序
  9. win11搜索位置在哪 Windows11搜索位置的设置方法
  10. KNN 算法实现 Iris 数据集分类
  11. MAC中配置SDK环境变量
  12. 如何批量压缩图片体积大小kb?
  13. MySQL项目--电商平台--数据库搭建
  14. 思科模拟器Cisco Packet Tracer 7.3.0安装配置
  15. 使用gevent的Pool实现异步并发
  16. 2021年全球与中国飞机导航镜行业市场规模现状及企业市场份额分析
  17. OpenHarmony,一路前行,为了奇迹
  18. 计算机高级语言中数据的表现形式
  19. pdf工具类之添加页码
  20. 第六周——爬虫入门 Day4 8.4

热门文章

  1. 一文详解 Prometheus 的高可用方案:Thanos
  2. 设计模式:各个模式间的对比
  3. 神奇的 Go init 函数
  4. 小哥哥,WebRTC 了解一下
  5. 腾讯游戏数据应用微服务实战
  6. NGINX-RTMP复杂度分析
  7. undefined reference to `boost::system::generic_category()
  8. windows平台python安装SciPy
  9. NoSQL分类及常用软件
  10. df -h 显示100%的解决办法