「PAT乙级真题解析」Basic Level 1055 集体照 (问题分析+完整步骤+伪代码描述+提交通过代码)

这篇博客详细解析了PAT乙级考试中1055题的解题思路,包括问题分析、模拟过程、伪代码描述及C语言实现。题目要求根据身高和特定规则排列人员,博主介绍了如何使用结构体存储身高和姓名,并按身高降序、姓名字典序升序排序。然后,通过模拟每排人员的左右交替站位,实现了题目的完整解决方案。

乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。

PAT乙级BasicLevelPractice 1055

问题分析

题设要求将给定的N个人按要求排成K排,
由于有明确列出要求, 所以我们初步判断这是一道按照要求翻译成代码的模拟题。
要求如下:

  • 按照公式N/K(向下取整)计算每排人数, 多出来的人全部站在最后一排.
  • 后排所有人的各自都不比前排任何人矮;(这意味着需要排序, 根据样例输出, 高个子在第一行, 所以是降序排列)
  • 每排中最高者站中间, 并明确给出(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整)
  • 每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧
    • 这需要提取一个方法来模拟这个排序方式
  • 若多人身高相同,则按名字的字典序升序排列。题设保证无重名

由于身高和名称是绑定关系, 排序用的是身高, 输出用的是名称,
之前分析其他题目的时候说过, 这种时候要将绑定的信息存储为类键值对结构, 放在一起, C语言中这意味着结构体。

模拟每排人员的左右交替站位</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明仔的阳光午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值