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

#include<cstdlib>#include<iostream>#include<stdio.h>#include<stdlib.h>typedefstructpe... #include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

typedef struct people{
int no;
int pass;
struct people *next;
}people,*linklist;//...........linklist...........

//////////////////////////////////////////////////////////////////////////////////////////////

int main()
{
int listinsert(linklist l,int e,int k);
int listrun(linklist l,int h);
linklist l,p;
int h,i,e;

l=(linklist)malloc(sizeof(people));//创建。。。。
if(!l) printf("OVERFOLW\n");
l->next=NULL;

printf("请输入原始密码\n");
scanf("%d",&h);
printf("输入个人密码:\n");
for(i=1;i<8;i++)
{
scanf("%d",&e);
listinsert(l,e,i);
}
p=(linklist)malloc(sizeof(people));//创建。。。。
if(!p) printf("OVERFOLW\n");
p->next=NULL;
p=l;
while(p->next)
p=p->next;
p->next=l->next;//.....连接循环.....
listrun(l,h);
return 0;
}

////////////////////////////////////////////////////////////////////////////////////////////////////

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;
p->next=q;
return 0;
}//....在最后插入新的结点....

int listrun(linklist l,int h)
{
linklist q;
int i;
while(l->next)
{
for(i=1;i<h;i++)
l=l->next;
q=(linklist)malloc(sizeof(people));
q->next=l->next;
h=q->pass;
printf("%d ",q->no);
l->next=q->next;
free(q);
}
printf("%d\n",l->no);
free(l);
return 0;
}
数据调试是int listinsert(linklist l,int e,int k)错,本来想用倒插法。
求强人解答。。。
展开
 我来答
logiciel
2011-03-16 · TA获得超过140个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:371万
展开全部
在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?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式