做数据结构(c语言)约瑟夫环这个程序错在哪了。

2024-12-02 10:43:32
推荐回答(1个)
回答1:

在listinsert中漏了q->next=NULL:
int listinsert(linklist l,int e,int k)
{
linklist p,q;
p=l;
while(p->next)//调试错误处。。。。
{
p=p->next;
}
q=(linklist)malloc(sizeof(people));
q->no=k;
q->pass=e;
q->next=NULL;//加
p->next=q;
return 0;
}//....在最后插入新的结点....

在listrun有如下问题:
q=(linklist)malloc(sizeof(people));
q->next=l->next;
h=q->pass; //错:q是新建的,何来q->pass?
printf("%d ",q->no); //错:q是新建的,何来q->no?