L1-030 一帮一

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

输入格式:

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

输出格式:

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

输入样例:

8
0 Amy
1 Tom
1 Bill
0 Cindy
0 Maya
1 John
1 Jack
0 Linda

输出样例:

Amy Jack
Tom Linda
Bill Maya
Cindy John

大致思路

这道题用c语言解题可有两种思路,一种是使用结构体解题,一种是使用数组解题。
结构体:可以先定义一个结构体,存放性别和姓名。通过遍历,如果遍历到的是女生则通过while循环进行判断,直到出现男生。如果遍历到的是男生则通过while循环进行判断,直到出现女生。
数组:定义一个一维整型数组存放性别,定义一个二维字符数组存放姓名。通过for循环进行输入,同时通过判断输入字符是否为空格或换行符决定输入是否结束。输出则通过嵌套循环进行输出。

参考代码

  1. 结构体解法
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct student
{int sex;char name[9];
}student;
int main(){int n,i,j,k;student stu[55];scanf("%d",&n);for(i=0;i<n;i++){scanf("%d%s",&stu[i].sex,&stu[i].name);}j=k=n-1;for(i=0;i<n/2;i++){if(stu[i].sex==0){while(stu[i].sex==stu[j].sex){j--;}printf("%s %s\n",stu[i].name,stu[j].name);j--;}else{if(stu[i].sex==1){while(stu[i].sex==stu[k].sex){k--;}printf("%s %s\n",stu[i].name,stu[k].name);k--;}}}  return 0;
}
  1. 数组解法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{int n;scanf("%d",&n);getchar();int a[n];char b[n][10];int i,j,z;int x,y;for(i=0;i<n;i++){scanf("%d",&a[i]);getchar();for(j=0;;j++){scanf("%c",&b[i][j]);if(b[i][j]==' '){break;}if(b[i][j]=='\n'){break;}}}int sum1=0,sum2=0;for(i=0;i<n;i++){if(a[i]==0){sum1++;}else{sum2++;}}if(sum1!=sum2){return 0;}    x=n-1; y=n-1;for(i=0;i<n/2;i++){if(a[i]==0){for(j=0;;j++){if(b[i][j]==' '){break;}if(b[i][j]=='\n'){break;}printf("%c",b[i][j]);}printf(" ");for(z=x;z>=0;z--){if(a[z]==1){for(j=0;;j++){if(b[z][j]==' '){break;}if(b[z][j]=='\n'){break;}printf("%c",b[z][j]);}if(z!=0){x=z-1;}break;}else{continue;}}printf("\n");}else{if(a[i]==1){for(j=0;;j++){if(b[i][j]==' '){break;}if(b[i][j]=='\n'){break;}printf("%c",b[i][j]);}printf(" ");for(z=y;z>=0;z--){if(a[z]==0){for(j=0;;j++){if(b[z][j]==' '){break;}if(b[z][j]=='\n'){break;}printf("%c",b[z][j]);}if(z!=0){y=z-1;break;}break;}else{continue;}}printf("\n");}}}return 0;}

L1-030 一帮一相关推荐

  1. 团体程序设计天梯赛-练习集-java

    java不一定能都过 有星号*的都是我java过不去的 但是代码思路都是对的 如果需要c++的 可以留言 L1 L2 L3 001 Hello World 紧急救援 凑零钱 002 打印沙漏 链表去重 ...

  2. 80页笔记看遍机器学习基本概念、算法、模型,帮新手少走弯路

    来源:机器之心 本文约1000字,建议阅读6分钟. 这份学习笔记帮你及时回顾机器学习概念,带你快速上手. [ 导读 ]目前有关机器学习的资料可谓层出不穷,其中既有书籍.课程视频资料,也有很多算法模型的 ...

  3. 新手必看的编程介绍,帮你推荐学习方案!

    新手必看的编程介绍,帮你推荐学习方案! VB是什么? ) y0 {6 G# G; j3 B VB 是Visual Basic编程语言 * B. O2 G# z) O1 |- g8 `4 ^ 编写计算机 ...

  4. pytorch实现L2和L1正则化regularization的方法

    pytorch实现L2和L1正则化的方法 目录 目录 pytorch实现L2和L1正则化的方法 1.torch.optim优化器实现L2正则化 2. 如何判断正则化作用了模型? 2.1 未加入正则化l ...

  5. 在tensorflow框架下添加正则化约束l1、l2的方法

    一.基础正则化函数 tf.contrib.layers.l1_regularizer(scale, scope=None) 返回一个用来执行L1正则化的函数,函数的签名是func(weights).  ...

  6. 一文帮你理解模型选择方法:AIC、BIC和交叉验证!

    一文帮你理解[模型选择方法]:AIC.BIC 和交叉验证! 本文先讲透模型选择的基本思想,再逐一叙述几种比较典型和常用的模型选择方法,希望可以帮助你理解. 一.模型选择的基本思想 模型选择的核心思想就 ...

  7. 天梯赛L1(1-80)

    目录 L1-001 Hello World L1-002 打印沙漏 L1-003 个位数统计 L1-004 计算摄氏温度 L1-005 考试座位号 L1-006 连续因子 L1-007 念数字 L1- ...

  8. 打工人的「周游世界」,AI算法帮你实现,泪目!

    一.前言 大家好,我是 Jack . 最近又有一个算法火了,不知道你们看到没?直接看效果! 打工人的「周游世界」,AI 算法帮你实现. 效果这么稳定的人像 Image Matting算法真的不多,并且 ...

  9. 2021/4/24团队设计天梯赛L1题目集及题解

    2021/4/24团队设计天梯赛L1题目集及题解: 以下题解都是通过PTA测试的,大致保证正确性: 查看题目戳此::PTA题目集 L1题目集 L1-01 人与神(5分) L1-02 #两小时学完C语言 ...

  10. GPLT练习集L1 25--32

    GPLT练习集L1 25--32 L1-025 正整数A+B (15 分) 题目描述 代码 说明: L1-026 I Love GPLT (5 分) 题目描述 代码 L1-027 出租 (20 分) ...

最新文章

  1. 简单编程代码_好了好了,不闲扯了,我们开始学编程了
  2. Java处理excel根据某列的值查询,并将结果显示在其他列中
  3. 微信小程序 - vant popup弹出层阻止底层页面滑动
  4. java lock unlock_详解Java中的ReentrantLock锁
  5. 【Python网络爬虫】规则#20181023
  6. Java String 中的一些函数与正则的结合使用
  7. gulp教程之gulp-minify-css
  8. Aboutface3交互设计精髓笔记0001
  9. 什么是5G技术-认识5G
  10. 微信小程序扫描程序码携带参数
  11. 小米airdots2蓝牙耳机连上手机后没有声音
  12. DetachedCriteria查询和子查询
  13. 在vue中使用3d-force-graph
  14. VMware 16 安装银河麒麟V10服务器系统
  15. 考研英语近义词与反义词·八
  16. RGB图像卷积生成Feature map特征图过程
  17. GooglePlay区分推荐来源
  18. 【愚公系列】2023年02月 .NET CORE工具案例-Caliburn.Micro的使用基于WPF的改造的MVVM案例
  19. 《c语言修炼内功之第二种境界(看代码就是内存)之关键字系列一》
  20. 页面载入-(dom、css、图片 等资源 加载完成) 执行

热门文章

  1. string 析构崩溃 assign
  2. MQL4自编指标学习6-MQL4中MACD指标的实现
  3. Part 1: 3.1 时序逻辑~3.2 flip flop 触发器寄存器
  4. GSM系统信令接续流程
  5. 2022秋季 电影&书单
  6. 第三回 利器,我的DHCP (转)
  7. ORA-00600错误一例
  8. 97年时的计算机系统桌面,这些年电脑桌上的变迁 篇一:设备的更迭
  9. linux中的sh脚本语法
  10. 开源J2EE项目Zheng环境Docker部署