C语言新手,用单循环链表写约瑟夫环问题,但老是遇到这种情况
以下为源代码`#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct node
{
int num;
int password;
struct node *next;
}Lnode;
Lnode t;
void Creat(Lnode L)
{
t=(Lnode)malloc(sizeof(Lnode));
L=(Lnode)malloc(sizeof(Lnode));
L->next=t;
t->next=L;
}
void Insert(Lnode L,int m)
{
printf(“Please input the %d’s password\n”,m);
Lnode s;
int i,j[m];
for(i=0;i<m;i++)
{
scanf("%d",&j[i]);
}
L=(Lnode)malloc(sizeof(Lnode));
L->num=1;
L->password=j[0];
t->num=m;
t->password=j[m-1];
for(i=1;i<m-1;i++)
{
s=(Lnode)malloc(sizeof(Lnode));
s->num=i+1;
s->password=j[i];
s->next=L->next;
L->next=s;
printf(“s->num=%d\n”,s->num);
}
}
void Delete(Lnode *L,int *e)
{
Lnode *p,q;
int r,i;
p=(Lnode)malloc(sizeof(Lnode));
p=L;
printf(“p->num=%d\n”,p->num);
printf(“e=%d\n",e);
for(i=0;i<e;i++)
{
// p=(Lnode)malloc(sizeof(Lnode));
p=p->next;
printf(“p->num=%d\n”,p->num);
}
r=p->num;
printf(“r=%d\n”,r);
e=&(p->password);
printf("%d\n",&(p->num));
for(i=0;i<r;i++)
{
// p=(Lnode)malloc(sizeof(Lnode));
// q=(Lnode)malloc(sizeof(Lnode));
q=p->next;
p->next=q->next;
free(q);
}
}
int main()
{
Lnode *L;
int i,m,n,*e;
printf(“Please input the number and the maxsize\n”);
scanf(”%d %d",&m,&n);
e=&n;
Creat(L);
Insert(L,m);
for(i=0;i<m;i++)
Delete(L,e);
return 0;
}`
跪求各路大神指点