舞伴问题(队列).doc

舞伴问题(队列).doc

ID:57673337

大小:69.50 KB

页数:7页

时间:2020-08-31

舞伴问题(队列).doc_第1页
舞伴问题(队列).doc_第2页
舞伴问题(队列).doc_第3页
舞伴问题(队列).doc_第4页
舞伴问题(队列).doc_第5页
资源描述:

《舞伴问题(队列).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、舞伴问题(队列的实现)有m个男学生,n个女学生,各排成一队(即男的排一队,女的排一队),有s首歌曲,这s首循环播放,每一首开始时,男队的第一个人与女队的第一个人配对跳舞,结束后回排到队尾继续排队。由老师决定什么时候跳舞停止。用户输入:mns输出:第几首歌曲几号男生与几号女生配对条件查询:第N首歌曲播放时男女配对的所有情况X号男生于Y号女生配对的所有歌曲编号输出所有的可能情况代码如下:Main.c文件#include#include#include"QueueLink.h"voidmain(){QueueLinkmq,nq;E

2、lemTypeme,ne,a,b;inti,m,n,s;//m男生,n女生,s歌曲数intN,X,Y;charkey;printf("分别输入男生数,女生数,歌曲数:");scanf("%d%*c%d%*c%d",&m,&n,&s);InitQueue(&mq);InitQueue(&nq);for(i=1;i<=m;i++)EnQueue(&mq,i);for(i=1;i<=n;i++)EnQueue(&nq,i);do{//首先让歌曲从头到尾播放一轮,输出配对情况for(i=1;i<=s;i++){DeleteFront(&mq,&me);DeleteF

3、ront(&nq,&ne);EnQueue(&mq,me);EnQueue(&nq,ne);printf("第%d首歌曲%d号男生与%d号女生配对",i,me,ne);}//进行查询printf("是否查询?Y/N:");fflush(stdin);key=getchar();while(key=='Y'){printf("1.查询第N首歌曲的男女配对情况2.查询X号男生与Y号女生配对的歌曲目录3.查询所有可能情况");fflush(stdin);scanf("%c",&key);//第一个条件查询if(key=='1'){printf("输

4、入N:");fflush(stdin);scanf("%d",&N);GetElem(&mq,&a);//记下此时排在第一个学生的号GetElem(&nq,&b);do{for(i=1;i<=s;i++)//播放完一轮歌曲{DeleteFront(&mq,&me);EnQueue(&mq,me);DeleteFront(&nq,&ne);EnQueue(&nq,ne);if(i==N)printf("第%d首歌曲%d号男生与%d号女生配对",N,me,ne);}GetElem(&mq,&me);GetElem(&nq,&ne);}while((a!=me

5、)

6、

7、(b!=ne));//直到与开始查找时的情况相同}//第二个条件查询elseif(key=='2'){printf("输入XY的值:");fflush(stdin);scanf("%d%*c%d",&X,&Y);printf("%d号男生与%d号女生配对跳舞的歌曲目如下:",X,Y);GetElem(&mq,&a);GetElem(&nq,&b);do{for(i=1;i<=s;i++){DeleteFront(&mq,&me);DeleteFront(&nq,&ne);EnQueue(&mq,me);EnQueue(&nq,ne);if((me=

8、=X)&&(ne==Y))printf("第%d首歌曲",i);GetElem(&mq,&me);GetElem(&nq,&ne);}}while((a!=me)

9、

10、(b!=ne));}//第三个条件查询elseif(key=='3')//查询所有可能情况{printf("所有的可能情况如下:");GetElem(&mq,&a);GetElem(&nq,&b);do{for(i=1;i<=s;i++){DeleteFront(&mq,&me);DeleteFront(&nq,&ne);EnQueue(&mq,me);EnQueue(&nq,ne);pri

11、ntf("第%d首歌曲%d号男生与%d号女生配对",i,me,ne);GetElem(&mq,&me);GetElem(&nq,&ne);}}while((a!=me)

12、

13、(b!=ne));}//回到查询菜单,询问是否继续查询printf("是否查询?Y/N:");fflush(stdin);key=getchar();}//询问是否继续跳舞printf("是否继续跳舞Y/N:");fflush(stdin);key=getchar();if(key=='Y'){printf("输入歌曲数目:");fflush(stdin);scanf("%d"

14、,&s);}}while

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。