⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monkey.cpp

📁 该程序为猴子选大王的程序
💻 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 + -