joseph环问题的提出与解决

源代码在线查看: j.cpp

软件大小: 2 K
上传用户: xiaoexiao
关键词: joseph
下载地址: 免注册下载 普通下载 VIP

相关代码

				#include
				#include
				#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					{
						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					   {for(j=1;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);
				
				}			

相关资源