语轻星子 发表于 2019-10-16 22:09:28

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

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

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

        }
        void GetQueue(int n)
        {
                       
                front=(front+1)%n;
                if(n%2==0)
                {
                while(n==0)
                {
                        while(data%2==1)
                        {       
                                front = (front+1)%n;
                        }
                                cout<<"man"<<data<<"-";
                                n--;
                        while(data%2==0)
                        {
                                front = (front +1)%n;
                               
                        }
                        cout<<"woman"<<data;
                        n--;
                        continue;
                }
                cout<<endl;
                }
                else
                {
                        while(n==1)
                {
                        while(data%2==1)
                        {       
                                front = (front+1)%n;
                               
                        }
                                cout<<"man"<<data<<"-";
                                n--;
                        while(data%2==0)
                        {
                                front = (front +1)%n;
                               
                        }
                        cout<<"woman"<<data;
                        n--;
                        cout<<endl;
                }
                cout<<endl;
                }
       
        }
};
int main()
{
        int n;
        int a;
        while(cin>>n)
        {       
                CirQueue Q;
                for(int i=0;i<n;i++)
                {
                        cin>>a;
                        Q.EnQueue(a,n);
                }
                        Q.GetQueue(n);
        }
        return 0;
}

语轻星子 发表于 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
页: [1]
查看完整版本: 萌新刚学到循环队列,不是特别懂,敢问大佬们这样写为何不行,还有是否有其它的好...