📄 monkey.cpp
字号:
#include "stdio.h"
#include "malloc.h"
#define OVERFLOW -2
#define OK 1
#define FALSE 0
int n = 0;
typedef struct
{
int *base; //动态分配
int front , rear ;
} SqQueue;
int exit(int k)
{
return k;
}
int InitQueue(SqQueue &Q)
{
Q.base = (int*)malloc((n + 1) * sizeof(int));
if(!Q.base)
exit(OVERFLOW);
Q.front = Q.rear = 0;
return OK;
}
void xuanze(SqQueue &Q)
{
int c = 0,i = 0,j = 0,count = 1;
printf("请输入密码:\n");
scanf("%d",&c);
for(i = 0;i < n;i++)/*为圈子里的人安排编号*/
Q.base[i] = 1;
printf("\n出列顺序依次为:\n");
i = 0;j = 0;
while(count < n + 1)
{
if(Q.base[i] != 0)/*当前人在圈子里*/
j++;
if(j == c)/*若该人应该退出圈子*/
{
printf("%4d",i + 1);
c = Q.base[i];
Q.base[i] = 0;/*0表示不在圈子里*/
count++;/*退出的人数加1*/
j = 0;/*重新数数*/
}
i++;/*判断下一个人*/
if(i == n)/*围成一圈*/
i = 0;
}
if (i == 0)
printf("\n大王序号为:%d",n);
else
printf("\n大王序号为:%d",i);
printf("\n");
}
int main(int argc, char* argv[])
{
SqQueue cq;
printf("请输入猴子个数:\n");
scanf("%d",&n);
InitQueue(cq);
xuanze(cq);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -