该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#define MaxSize 100
typedef struct
{
int data[MaxSize];int front;int rear;
}SegQueue;
SegQueue* initQueue()
{
SegQueue *p;p=(SegQueue *)malloc(MaxSize* sizeof(SegQueue));
p->front=p->rear=0;
return p;
}
int enQueue(SegQueue*p,int data)
{
if((p->rear+1)%MaxSize==p->front) return -1;
p->data[p->rear]=data;
p->rear=(p->rear+1)%MaxSize; return 1;
}
int deQueue(SegQueue*p)
{
int x;if(p->front==p->rear) return -1;
x=p->data[p->front];
p->front=(p->front+1)%MaxSize;
return x;
}
void main()
{
int m=0,k,i,n,j;
SegQueue *p;
p=initQueue();
printf("输入猴子数 n:");
scanf("%d",&n);
printf("输入退出数 k:");
scanf("%d",&k);
for(i=1;i<=n;i++)
{
enQueue(p,i);
}
while(m!=n-1)
{
for(i=1;i<=k;i++)
{
if(i!=k)
{
j=deQueue(p);
enQueue(p,j);
}else {
j=deQueue(p);m++;
}
}
}
j=deQueue(p);
printf("大王是:%d\n",j);
}
这是一个C的程序。至于C++的还是没有看懂。。