#include<iostream.h>
#include<stdlib.h>
typedef struct LNode
{
int listnumber,password;
struct LNode *next;
}LNode,*Linklist;
void create(Linklist &l,int n)
{
int i=1;
l=(Linklist)new(LNode);
cout<<"请输入第 "<<i<<" 个人的密码:"<<endl;
cin>>l->password;
l->listnumber = i;
Linklist p,q=l;
for(i=2;i<=n;i++)
{
p=(Linklist)new(LNode);
cout<<"请输入第 "<<i<<" 个人的密码:"<<endl;
cin>>p->password;
p->listnumber=i;
q->next=p;
q=p;
if(i==n)
{
q->next=l;
}
}
}
void game(Linklist &l,int m,int n)
{
Linklist p=l,k;
int i;
while(n)
{
for(i=1;i<m-1;i++)
p=p->next;
k=p->next;
cout<<k->listnumber<<" ";
m=k->password;
p->next=k->next;
p=p->next;
n--;
free(k);
}
cout<<endl;
}
int main()
{
Linklist L;
int m,n;
char c;
loof: cout<<"请输入初次报数值以及人数:"<<endl;
cin>>m>>n;
create(L,n);
game(L,m,n);
cout<<"continue?"<<endl;
cin.get();
cin.get(c);
if(c=='y')
goto loof;
free(L);
return 0;
}