鱼C论坛

 找回密码
 立即注册
查看: 2597|回复: 1

萌新刚学到循环队列,不是特别懂,敢问大佬们这样写为何不行,还有是否有其它的好...

[复制链接]
发表于 2019-10-16 22:09:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream>
using namespace std;
class CirQueue
{
private:
        int data[100];
        int front,rear;
public:
        CirQueue()
        {
                front=rear=0;
        }
        void EnQueue(int x,int n)
        {

                rear=(rear+1)%n;
            data[rear]=x;

        }
        void GetQueue(int n)
        {
                       
                front=(front+1)%n;
                if(n%2==0)
                {
                while(n==0)
                {
                        while(data[front]%2==1)
                        {       
                                front = (front+1)%n;
                        }
                                cout<<"man"<<data[front]<<"-";
                                n--;
                        while(data[front]%2==0)
                        {
                                front = (front +1)%n;
                               
                        }
                        cout<<"woman"<<data[front];
                        n--;
                        continue;
                }
                cout<<endl;
                }
                else
                {
                        while(n==1)
                {
                        while(data[front]%2==1)
                        {       
                                front = (front+1)%n;
                               
                        }
                                cout<<"man"<<data[front]<<"-";
                                n--;
                        while(data[front]%2==0)
                        {
                                front = (front +1)%n;
                               
                        }
                        cout<<"woman"<<data[front];
                        n--;
                        cout<<endl;
                }
                cout<<endl;
                }
       
        }
};
int main()
{
        int n;
        int a[100];
        while(cin>>n)
        {       
                CirQueue Q;
                for(int i=0;i<n;i++)
                {
                        cin>>a[i];
                        Q.EnQueue(a[i],n);
                }
                        Q.GetQueue(n);
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-10-16 22:14:39 | 显示全部楼层
这是题目:
Problem Description:
前些日子是玛丽的21岁生日,她在家里开了一个舞会并且邀请了很多男男女女的朋友,然后大家提议用随机配对的方法找舞伴。即给每一位想跳舞的朋友一个随机的号码(男的给奇数号,女的给偶数号),男女生分别排成两队。舞会开始时。依次从男队和女队的队头各出一人配成舞伴。如果两队初始人数不等,则较长的那一队中未配对者则在旁边看别人跳舞。现在你用链队列的方法编写一个能实现该配对的程序。

Input:
有多组数据,每组先输入一个整数n,代表有n个想跳舞的朋友。然后再输入n个整数,代表每个朋友的编号(奇数号代表男生,偶数号代表女生)。

Output:
输出每对男女的编号。每组后面有一空行。

Sample Input:
3 41 67 34
4 1 69 24 78
5 58 62 64 5 45
Sample Output:
man41-woman34

man1-woman24
man69-woman78

man5-woman58
man45-woman62
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 13:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表