我写的约瑟夫问题(猴子选王)错在哪?
#include<stdio.h>#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct Node
{
int a,b; //a是第几个数,b是代表密码.
struct Node *next;
}LNode;
main()
{
int i,j,n,m,b[1000];
LNode *p,*q,*L;
cout<<"输入初始密码m:"<<endl;
cin>>m;
cout<<"输入人数n:"<<endl;
cin>>n;
cout<<"输入这n个数的密码:"<<endl;
for(i=1;i<n+1;i++)
{
cin>>b[i];
}
*p=*L;
L->next=NULL;
L->a=1;
L->b=b[1];
for(i=2;i<n+1;i++)
{
q=(LNode*)malloc(sizeof(LNode));
q->a=i;
q->b=b[i];
p->next=q;
q->next=NULL;
p=q;
}
p->next=L;
for(i=1;i<n+1;i++)
{
for(j=1;j<m;j++)
{ p=p->next; }
q=p->next;
p->next=q->next;
m=q->b;
cout<<q->a<<" ";
free(q);
}
}