cpp1.cpp

来自「约瑟夫环问题:设有编号为1」· C++ 代码 · 共 63 行

CPP
63
字号
#include<stdio.h>
#include<stdlib.h>

typedef struct Node
{
	 int code;
	 int turn;
	 struct Node *next;
}NOTE;
void main()
{
	int i,n,m,count=0;
	NOTE *head,*p,*q,*r;
	head=(NOTE *)malloc(sizeof(NOTE));
	head->next=NULL;
	q=head;
	printf("\nplease input m and n:");
	scanf("%d,%d",&m,&n);
	if(n==0)
		printf("\nerror\n");
	else
	for(i=1;i<=n;i++)
	{
		p=(NOTE *)malloc(sizeof(NOTE));
		q->next=p;
		p->next=NULL;
		p->turn=i;
		p->code=rand()%10+1;
		q=p;
	}
	p->next=head;
	p=head->next;
	printf("随机产生的密码为:\n");
    for(i=1;i<=n;i++)
	{
		printf("%d号的密码是%d\n",i,p->code);
		p=p->next;
	}
	p=head;
	printf("\n出列的顺序为:\n");
    for(i=1;i<=n;i++)
	{
		while(count!=m)
		{
			q=p;
			p=q->next;
			if(p!=head)
				count++;
		}
		printf("%d\n",p->turn);
		r=p;
		m=p->code;
		p=p->next;
		if(p==head)
			count=0;
		else
			count=1;
		q->next=r->next;
		free(r);
	}
}

⌨️ 快捷键说明

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