#include<iostream.h>
void InQ(int Q[],int x);
void OutQ(int Q[]);
int GetHead(int Q[]);
int rear,front;
const int N=100;//支持100以下个的数据
void main()
{
int n,m;
cout<<"请输入人数:";
cin>>n;
cout<<"请输入数到多少出列:";
cin>>m;
int Q[N];
front=0;
rear=0;
int count=0;
for(int i=1;i<=n;i++)
{
InQ(Q,i);
}
while(rear!=front)
{
int a=GetHead(Q);
OutQ(Q);
InQ(Q,a);
count++;
if((count+1)==m)
{
int b=GetHead(Q);
OutQ(Q);
cout<<b;
count=0;
}
}
}
void InQ(int Q[],int x)
{
if((rear+1)%N==front)
cout<<"队满";
else
{
rear=(rear+1)%N;
Q[rear]=x;
}
}
void OutQ(int Q[])
{
if(rear==front)
cout<<"队空";
else
front=(front+1)%N;
}
int GetHead(int Q[])
{
if(rear==front)
return NULL;
else{
return Q[(front+1)%N];
}
}
void InQ(int Q[],int x);
void OutQ(int Q[]);
int GetHead(int Q[]);
int rear,front;
const int N=100;//支持100以下个的数据
void main()
{
int n,m;
cout<<"请输入人数:";
cin>>n;
cout<<"请输入数到多少出列:";
cin>>m;
int Q[N];
front=0;
rear=0;
int count=0;
for(int i=1;i<=n;i++)
{
InQ(Q,i);
}
while(rear!=front)
{
int a=GetHead(Q);
OutQ(Q);
InQ(Q,a);
count++;
if((count+1)==m)
{
int b=GetHead(Q);
OutQ(Q);
cout<<b;
count=0;
}
}
}
void InQ(int Q[],int x)
{
if((rear+1)%N==front)
cout<<"队满";
else
{
rear=(rear+1)%N;
Q[rear]=x;
}
}
void OutQ(int Q[])
{
if(rear==front)
cout<<"队空";
else
front=(front+1)%N;
}
int GetHead(int Q[])
{
if(rear==front)
return NULL;
else{
return Q[(front+1)%N];
}
}