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

📄 josephus.c

📁 约色夫问题,数据结构实习,用链表实现,哈哈,请多指教,我是才鸟
💻 C
字号:
#include <stdio.h>
#include <malloc.h>
#define maxnumber 7
typedef struct Person *P;

struct Person
{
	int number;
	int secretnumber;
	P  link;
};
typedef struct Person *P;

 P init()
{   typedef struct Person *P;
	int  secretnumber[maxnumber];
	int i,j;
	P a,b,c;
	printf("input everybody's secretnumbers:\n");
	for(i=0;i<maxnumber;i++)
	{
	   	scanf("%d,",&secretnumber[i]);
	};
    a=(P)malloc(sizeof(struct Person));
		a->number=1;
		a->secretnumber=secretnumber[0];
		c=a;

	for(j=1;j<maxnumber;j++)
	{b=(P)malloc(sizeof(struct Person));
	b->number=j+1;
	      b->secretnumber=secretnumber[j];
		  a->link=b;
		  a=b;
	}
	a->link=c;
	return(c);//recycle
	}

 void main()
{    P x,y;
	int m=20;
	int i;
	x=init();
	printf("first m=");
	printf("%d\n",m);
while(x!=x->link)
{
	for(i=0;i<m-1;i++)
	{
		y=x;
		x=x->link;
	}
	printf("%d\n",x->number);
	y->link=x->link;
    m=x->secretnumber;
	free(x);
	x=y->link;
}
    printf("%d\n",x->number);
    free(x);

 }		

⌨️ 快捷键说明

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