约瑟夫环:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将它的密码作为新的m值,从它的顺时针方向的下一个人开始重新从1报数,如此下去,直至全部人出列为止。最后按照出列的顺序输出每个人的编号。
实现约瑟夫环分3步
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
// 定义成员结构体
struct member
{
int number;
int password;
struct member* next;
}node;
// 定义结构体指针
struct member* head, * p, * p1;
void CreateList(int n); //建立循环链表
void EnterPassword(int n); //循环链表赋值密码
void PrintNumber(