本人用C++编写的约瑟夫环的小程序,望指教
2008-03-08 12:29:41 来源:WEB开发网核心提示:#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
#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;//输出各人的编号;
}
}
#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;//输出各人的编号;
}
}
更多精彩
赞助商链接