中易网

编程高手帮我看下这窜代码有什么错误?我在运行时显示第三行是错误的

答案:4  悬赏:30  
解决时间 2021-04-28 02:36
  • 提问者网友:放荡不羁
  • 2021-04-27 08:07

#include "stdio.h"
void insert(Linklist*head,intx,intk)
{Linklist*p,*s;
s=(Linklist*)malloc(sizeof(Linklist));
s->data=x;
p=head->next;
if(p==NULL)
{head->next=s;
s->next=NULL;
}
else {while(p&&p->data!=k)
p=p->next;
if(p->data==k)
{s->next=p->next;
p->next=s;
}
else
{p->next=s;
s->next=NULL;
}
}
}
最佳答案
  • 二级知识专家网友:社会水太深
  • 2021-04-27 09:16

主函数呢?

全部回答
  • 1楼网友:专属的偏见
  • 2021-04-27 11:06

你的Linklist 是怎么定义的 我猜 这本来就是个指针了 你把 Linklist *p,*s; 这句 改成Linklist p,s;

s=(Linklist*)malloc(sizeof(Linklist)); 这句改成:s=(Linklist)malloc(sizeof(Node))

这个Node 是在定义Linklist时 struct这个词后面的那个词 楼主没有把Linklist怎么定义的发出来

我也不知道是什么 只能用Node来代替了。。

  • 2楼网友:情战凌云蔡小葵
  • 2021-04-27 09:51

#include "stdio.h"

#include "malloc.h"

void insert(Linklist*head,intx,intk) {Linklist *p,*s; s=(Linklist*)malloc(sizeof(Linklist)); s->data=x; p=head->next; if(p==NULL) {head->next=s; s->next=NULL; } else {while(p&&p->data!=k) p=p->next; if(p->data==k) {s->next=p->next; p->next=s; } else {p->next=s; s->next=NULL; } } }

  • 3楼网友:专属的偏见
  • 2021-04-27 09:41

第三行的错误是因为你没有包含头文件,编译器找不到这个文件的实现代码。你把这个文件包含进去:

#include <malloc.h>

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息