PTA - 一帮一

该篇文章介绍了如何使用编程解决一个实际问题,即自动为一个班级中的学生按照成绩高低进行异性的‘一帮一’学习小组配对。通过正循环找到最高名次的学生,然后用倒循环从最低名次开始寻找性别不同的未配对学生,实现配对并标记。
摘要由CSDN通过智能技术生成

题目:

“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。

输入格式:

输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。

输出格式:

每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。

大致思路:

首先,我们需要用数组把学生的性别和姓名都存起来,方便我们配对,名次最高的配对名次最低的,也就是说,我们需要一个正循环和一个倒循环来配对。并且已配对的,不能再配对第二次,已配对的需要被标记。

代码实现:


 

代码解析:

a[50]是存放的学生们的性别,b[n][10]是存放的学生们的姓名,由于学生们的姓名是字符串,又有很多个字符串,需要用到二维数组,n代表行数,接下来利用循环,将每一个学生的性别姓名都存到数组里,全部存完以后开始配对,由于名次高的优先配对,所以我们用名次低的去配对名次高的,先写一个正循环,由上到下代表名次高的,再在里面嵌套一个倒循环,也就是从最后一名开始,比如当i等于0时,第一名要配对,我们从最后一名开始往上循环,当满足性别不同且两人都未被配对标记,则在同一行输出这两人的名字,并且将他们的hx替换成1,所有人的hx初始值都为零,1代表已配对。然后再配对第二名,以此往复。
 

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]、\[2\]和\[3\]的描述,题目中的L1-030 一帮一是一个关于班级学生性别和姓名的问题。题目要求输入一个正偶数N表示全班学生的人数,然后按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串)。题目保证本班男女比例是1:1,并且没有并列名次。输出格式未给出具体要求。 因此,题目要求我们根据输入的学生信息,进行相应的处理,但没有明确要求输出什么内容。可能的处理方式包括统计男女人数、按照一帮一的规则进行分组等。具体的处理方式需要根据题目要求进行进一步的分析和实现。 #### 引用[.reference_title] - *1* [PTA L1-030 一帮一(详解)](https://blog.csdn.net/weixin_73142957/article/details/128861748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [L1-030 一帮一 (15分) 详解笔记](https://blog.csdn.net/qq_39817609/article/details/104785567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [L1-030 一帮一 (15分)(chen-C语言)](https://blog.csdn.net/chenmou40/article/details/109289377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值