| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2532 人关注过本帖
标题:模拟舞伴配对算法出现了些问题,请指教
取消只看楼主 加入收藏
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:0 
模拟舞伴配对算法出现了些问题,请指教
就是依次配对,这一轮没配上的下一轮先配,队列


#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;

typedef struct Node
{
    int a; //a表示序号
    struct Node *next;
}LNode;

void duilie(int n,int nan,int nv);
void wuhui(int b,int n,LNode *zznan,LNode *zznv);

main()
{
    int  n,nan,nv;

    cout<<"要进行几轮舞会:";
    cin>>n;  //n代表舞会轮次
    cout<<"\n男队的人数为:";
    cin>>nan;
    cout<<"\n女队的人数为:";
    cin>>nv;
    cout<<endl;
    duilie(n,nan,nv);

}
void duilie(int n,int nan,int nv)
{
    int i,b;  //b表示一轮舞会男女各出多少人
    LNode *p,*q,*zznan,*zznv;
    //男队的循环链表 ,以zznan为头结点
    zznan=(LNode*)malloc(sizeof(LNode));
    zznan->a=1;
    zznan=p;
    for(i=1;i<nan;i++)
    {
        q=(LNode*)malloc(sizeof(LNode));  //建立新节点
        q->a=i+1;
        p->next=q;
        p=q;
    }
    p->next=zznan;
    //女队的循环链表 ,以zznv为头节点
    zznv=(LNode*)malloc(sizeof(LNode));
    zznv->a=1;
    zznv=p;
    for(i=1;i<nv;i++)
    {
        q=(LNode*)malloc(sizeof(LNode));  //建立新节点
        q->a=i+1;
        p->next=q;
        p=q;
    }
    p->next=zznv;
    cout<<"男女循环队列构造完成"<<endl<<endl;;
    if(nan<nv) b=nan;
    else b=nv;
    wuhui(b,n,zznan,zznv);
}
void wuhui(int b,int n,LNode *zznan,LNode *zznv)
{
    int i,j;
    for(i=0;i<n;i++) //轮数
    {
        cout<<"第"<<i+1<<"轮"<<endl;
        for(j=0;j<b;j++)
        {
            cout<<"男队"<<zznan->a<<"号和女队"<<zznv->a<<"号"<<endl;
            zznan=zznan->next;
            zznv=zznv->next;
        }
        cout<<endl;   
    }
}
搜索更多相关主题的帖子: include 
2016-07-28 12:22
快速回复:模拟舞伴配对算法出现了些问题,请指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016688 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved