#include <iostream>
using namespace std;
typedef struct LNode
{
int num,pwd;
struct LNode *next;
}LNode,*LinkList;
int main()
{
int i,j,m,n; //m为报数上限,n为人数。
cout<<”Please enter n=”;
if(!(cin>>n)) {cout<&l t;”ERROR:That’s not a number!”;return -1 ;}
cout<<”Please enter m=”;
if(!(cin>>m)) {cout<&l t;”ERROR:That’s not a number!”;return -2 ;}
LinkList head,tail,p,q; //head为头结点指针,tail为尾结点
//指针,p为当前指针的前一指针,q
//当前指针。
head=new LNode;
p=head;
for(i=1;i<n;i++)
{
q=new L Node;
p->next=q ;
p=q;
}
tail=q;
tail->next=head; //建立n个结点的循环链表。
p=head;
for(i=1;i<=n;i++)
{
p->num=i;
cout<< “Please enter No.”<<i<<”‘s passwo rd:”;
cin>>p ->pwd;
p=p->next ;
} //输入密码。
cout<<”result:”;
p=tail;
for(i=1;i<=n;i++)
{
for(j=1;j< ;m;j++) p=p->next;
q=p->next ;
m=q->pwd;
cout<< “ ”<<q->num;
p->next=q ->next;
delete q;
} //输出编号。
return 0;
}
>> 本文固定链接: http://www.vcgood.com/archives/586