舞伴配对问题java_舞伴配对问题

循环队列的应用——舞伴配对问题:在舞会上,男、女各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞曲。假设初始男、女人数及性别已经固定,舞会的轮数从键盘输入。试模拟解决上述舞伴配对问题。要求:从屏幕输出每一轮舞伴配对名单,如果在该轮有未配对的,能够从屏幕显示下一轮第一个出场的未配对者的姓名。

//循环队列的常用函数

#include

#include

#define Maxsize 100

typedef struct{

int *base;

int front;

int rear;

int k; //记录初始位置

}squeue;

int a,b,i,j,n,m1,m2,m;

void Initqueue(squeue &Q)

{

Q.base=(int*)malloc(Maxsize*sizeof(int));

if (!Q.base)

exit(1);

Q.front=Q.rear=Q.k=0;

}

void Push(squeue &Q,int e)

{

if ((Q.rear+1)%Maxsize==Q.front) //队满处理

return;

Q.base[Q.rear]=e;

Q.rear=(Q.rear+1)%Maxsize;

}

void Pop(squeue &Q,int &e)

{

if (Q.rear==Q.front) //判空处理

return;

e=Q.base[Q.front];

Q.front=(Q.front+1)%Maxsize;

if (Q.front==Q.rear)

{

Q.front=Q.k;

}

}

void GetHead(squeue Q)

{

printf("%d\n",Q.base[Q.front]);

}

int main()

{

squeue Q,P;

Initqueue(P);

Initqueue(Q);

printf("请输入舞会轮数:\n");

scanf("%d",&n);

printf("请输入男生人数:\n");

scanf("%d",&m1);

printf("请对男生进行编号:\n");

for (i=1;i<=m1;i++)

{

scanf("%d",&P.base[i]);

Push(P,P.base[i]);

}

printf("请输入女生人数:\n");

scanf("%d",&m2);

for (i=1;i<=m2;i++)

{

scanf("%d",&Q.base[i]);

Push(Q,Q.base[i]);

}

m=m1

for (i=1;i<=n;i++)

{

printf("第%d轮舞会:\n",i);

for (j=1;j<=m;j++)

{

Pop(P,a);

Pop(Q,b);

printf("%d %d\n",a,b);

}

}

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

逆元

复习逆元…… 逆元 求法&#xff1a; 1&#xff0c;快速幂     根据费马小定理有\(a^{p - 1} \equiv 1 \quad (mod \quad p)\),把左边拆开一下得到     \[a \cdot a^{p - 2} \equiv 1 \quad (mod \quad p)\]     因此\(a^{p - 2}\)为\(a\)在\(mod \quad p\)意义下的…

java如何让线程等待_如何使Java线程等待另一个线程的输出?

我真的建议你经历一个教程&#xff0c;如Sun’s Java Concurrency&#xff0c;你开始在多线程的魔法世界。还有一些好书出来了(google for“Concurrent Programming in Java”&#xff0c;“Java Concurrency in Practice”)。要得到你的答案&#xff1a;在你必须等待dbThread的…

win7共享wifi

为什么80%的码农都做不了架构师&#xff1f;>>> 1.从开始菜单找到“命令提示符”&#xff0c;或直接键入cmd快速搜索&#xff0c;右键单击它&#xff0c;选择“以管理员身份运行” 2.运行以下命令启用虚拟无线网卡&#xff1a; netsh wlan set hostednetwork mod…

Ubuntu开启NFS、SSH服务(驱动开发用到、电脑端登录ARM板用到)

参考&#xff1a;Ubuntu下NFS服务的开启 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-08-04 14:06:58 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107784877 目录NFS服务的开启1.安装NFS服务2.创建 linux 工作目录3.配置NFSUbuntu下SSH…

【整理】MySQL 之 autocommit

2019独角兽企业重金招聘Python工程师标准>>> mysql 默认是开启 auto commit 的。可以通过如下命令查看 session 级别和 global 级别的设置&#xff1a; mysql> select session.autocommit; ---------------------- | session.autocommit | ---------------------…

java某个类避免findbug检查_Findbugs能否在java中检测到捕获RuntimeException?

你能不能让我知道Findbugs可以在java中检测到catcing RuntimeException吗&#xff1f;有效的java建议我们不要捕获RuntimeException.所以我想知道Findbugs可以抓错了.另外,我已经检查过Klocwork JD.CATCH和checkstyle IllegalCatch是否适用于此目的.最佳答案 有点.在findbugs中…

交叉编译链的安装

参考&#xff1a;嵌入式 交叉编译链的安装 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-08-04 18:13:13 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107789879 目录什么是交叉编译器交叉编译器的下载交叉编译器的安装1.把下载的文件放到…

Scrapy将爬取的段落整合为字符串

使用Scrapy框架爬取文章的时候&#xff0c;经常会遇到要爬取多个段落的问题&#xff0c;如果这个时候使用的是&#xff1a; text response.xpath("......").extract() 那么会发现爬取下来的文章是以段落为单位的list&#xff0c;不方便直接展示。 这个时候可以将lis…

Ubuntu下安装VS Code以及C/C++插件(PS工作目录的创建)

参考&#xff1a;Visual Studio Code Ubuntu下安装 以及C/C插件大全 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-08-05 11:55:53 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107811506 目录为何选择安装VS CodeVisual Studio Code 安装…

Common Lisp中调用R

2019独角兽企业重金招聘Python工程师标准>>> R是功能强大的统计软件&#xff0c;和Lisp一样也有一个交互式的命令行环境&#xff0c;还有众多的扩展库&#xff0c;可以用来进行专业的统计分析。要在Common Lisp中方便的调用R的功能&#xff0c;可以试用rcl这个库。安…

java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密)

java使用iText 生成PDF全攻略,包括创建文档,设置字体,添加表格(PdfPTable),创建新页(newPage),设置布局,加密主要使用的jar包: itextpdf-5.4.2.jar,itext-pdfa-5.4.2.jar,itext-xtra-5.4.2.jar,如果用到中文&#xff0c;需要CJK字体的扩展包&#xff1a;itext-asian.jar如果用到…

恩智浦NXP I.MX6ULL芯片介绍下载官网资料

参考&#xff1a;NXP I.MX6ULL芯片介绍以及资料的获取 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-09-26 10:54:26 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/108808573 目录I.MX6ULL芯片介绍以及官网资料的获取I.MX6ULL芯片介绍以及…

变速不变调方法

语音变速不变调&#xff0c;即语音时长规整&#xff0c;是指不改变原说话人的音调及语义信息&#xff0c;只改变说话人的语速。 语音变速不变调算法有三大类&#xff1a;时域法、频域法、参量法&#xff0c;如表2-1所示。 表2-1 变速不变调算法分类 时域法 频域法 参量法 剪…

java开发高端说法_关于Java代码的设计和开发注意事项,下列哪些说法符合《集合开发规约》:...

案例分析一&#xff1a;假定CPU的主频是500MHz。硬盘采用DMA方式进行数据传送&#xff0c;其数据传输率为4MB/s, 每次DMA传输的数据量为8KB, 要求没有任何数据传输被错过。如果CPU在DMA初始化设置和启动硬盘操作等方面用了1000个时钟周期&#xff0c;并且在DMA传送完成后的中断…

ES6学习笔记六(Iterator和for..of)

{let arr[hello,world];let maparr[Symbol.iterator](); //返回false时继续执行&#xff0c;true停止执行&#xff01;console.log(map.next());console.log(map.next());console.log(map.next()); }{let obj{start:[1,3,2],end:[7,8,9],[Symbol.iterator](){let selfthis;let…

判定点是否在不规则多边形内部的问题

2019独角兽企业重金招聘Python工程师标准>>> 问题如下&#xff1a; 话说在平面内有一个任意的不规则的封闭多边形&#xff0c;另外在这个平面内还有一个点&#xff0c;问题&#xff1a;如何高效的判定这个点是在这个多边形内部还是外部&#xff1f;补充&#xff1a…

Cortex-A7 MPCore 架构详细介绍(九种运行模式、内核寄存器组R0~R15,有特定的名字和功能)

目录0.ARM架构的历史简介1.Cortex-A7 MPCore(即多核) 简介2.Cortex-A 处理器九种运行模式3.Cortex-A 寄存器组&#xff08;内核寄存器&#xff09;3.1通用寄存器3.1.1未备份寄存器(R0~R7)3.1.2备份寄存器(R8~R12、SP指针R13、备份R14也叫LR)3.1.3程序计数器R15(PC)3.2程序状态寄…

Java开发中遇到具有挑战的事_Java并发编程的挑战:遇到的问题及如何解决

并发编程的目的是为了让程序运行得更快&#xff0c;但是&#xff0c;并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时&#xff0c;如果希望通过多线程执行任务让程序运行得更快&#xff0c;会面临非常多的挑战&#xff0c;比如上下文切换的问题、死锁的问…

jQuery 属性选择器

jQuery 使用 XPath 表达式来选择带有给定属性的元素。 $("[href]") 选取所有带有 href 属性的元素。 $("[href#]") 选取所有带有 href 值等于 "#" 的元素。 $("[href!#]") 选取所有带有 href 值不等于 "#" 的元素。 $("…

使用的 SQL Server 版本不支持数据类型“datetime2”的错误解决方法

THE VERSION OF SQL IN USE DOES NOT SUPPORT DATATYPE ‘DATETIME2′ 主要错误原因&#xff0c;在使用ado.net entity的时候&#xff0c;entity使用的数据库是sqlserver 2008&#xff0c;或者sqlserver 2008 r2 但后来实际使用的数据库是sqlserver 2005&#xff0c; sqlserver…