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

📄 j.cpp

📁 joseph环问题的提出与解决
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct node                       
{
	int data1;
	int data2;
	struct node * next;                   
}Lnode;


void Hello()
{
	printf("欢迎进入joseph环\n");
}

Lnode *set(int n,Lnode *r) 
{
	Lnode *p,*q;
	int i;
	q=(Lnode *)malloc(sizeof(Lnode));
	r=q;
	for(i=1;i<n;i++)
	{
		p=(Lnode *)malloc(sizeof(Lnode));
		q->data1=i;
		q->data2=NULL;  //初始密码为空
		q->next=p;
		q=p;
	}
	p->data1=n;
	p->data2=NULL;
	p->next=r;
	r=p;
	return r;
}

Lnode *access(int n,int m,Lnode *r) 
{
	int i,j,k;
	Lnode *p,*q;
	p=r;
	for(i=1;i<n;i++)             
	   {for(j=1;j<m;j++)                     
		    p=p->next;
		 q=p->next;                              
		 p->next=q->next;
		 printf("第%d个出列的人序号为:%d\n",i,q->data1);
		 printf("请输入此人隐含得密码\n");
		 scanf("%d",&k);
		 m=k;   
	   }
	printf("第%d个出列的人序号为: %d\n",n,p->next->data1);

	r=p;
	return r;
}

void end()
{
	printf("错误的输入,程序将关闭\n");
}

void exit()
{
	printf("thank you for using\n");
}



void main()
{
	Lnode *r;                           
	int n,m,c; //n为人数 m为报数上限
	do{
	Hello();
	printf("首先请输入人数以及报数——总数:______报数上限_____\n");

	scanf("%d%d",&n,&m);
    if(n>0&&m>0)
	{
    Lnode *set(int n,Lnode *r);

	r=set(n,r);
    access(n,m,r);
	}
	else
		end();
	printf("1:重新进入   2:退出\n");
	scanf("%d",&c);
	if(c==2)
		exit();
	}while(c==1);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -