#include<stdlib.h> #include<iostream.h>
typedef strUCt LNode { int num,pwd; struct LNode *next; }LNode, *LinkList;
void main() { int a,i,m,n,j;//m为报数上限值,n为人数,j为输入的密码; cout<<"please enter m and n:"; cin>>m>>n; LinkList head,p,pt;//head为头节点的指针,p为当前指针的前一指针,pt为当前指针; head=(LinkList)malloc(sizeof(LNode)); p=head; for(i=1;i<n;i++) { pt=(LinkList)malloc(sizeof(LNode)); p->next=pt; p=pt; } pt->next=head; pt=head; p=head;//建立n个节点;
cout<<"please enter the passWord:"; for(i=1;i<=n;i++) { cin>>j; p->num=i; p->pwd=j; p=p->next; } pt=head; p=head;//输入各个人的密码;
for(i=1;i<n;i++) pt=p;//找寻最后一个节点;
for(i=1;i<=n;i++) { for(a=1;a<m;a++) { p=p->next; } pt=p->next; m=pt->pwd; cout<<pt->num; p->next=pt->next; free(pt); pt=p;//输出各人的编号; } }
|