大家好!这个程序报错了,我检查了好几遍,不得要领,麻烦各位帮我看看是怎么回事,用的是vc++。

2025-01-05 13:10:07
推荐回答(3个)
回答1:

修改后:

//#include"stdafx.h"
#include
#include
#include

typedef struct node{
int data;
struct node *next;
}node;
int len=0;

node *create()
{
node *head,*p,*q;
int x;
head=(node *)malloc(sizeof(node));
while(1)
{

printf("please input the node:");

scanf("%d",&x);
if(x==0) {break;}

p=(node *)malloc(sizeof(node));

p->data=x;
++len;
if(len==1)
{
head->next=p;
}
else
{
q->next=p;
}
q=p;
}
q->next=NULL;
return head;
}

node *search(node *head,int pos)
{
node *p;

p=head->next;

if(pos<0) {

printf("incorrect position!\n"); return NULL;
}
else if(pos>len)
{
printf("incorrect position!\n"); return NULL;
}
else if(pos==0) {

return head;
}
if(p==NULL) {

printf("the link is empty!\n"); return NULL;
}
while (--pos)

{ p=p->next; }

return p;
}
node *insert(node *head,int pos,int x)
{
node *p,*q=NULL;
q=(node *)malloc(sizeof(node));
q->data=x;
if(pos==0) {

head->next=q; return head; }

p=search(head,pos);

if(p!=NULL) { q->next=p->next; p->next=q; }
len++;

return head;}

void main()
{
}

回答2:

typedef struct node{
int data;
struct node *next;
}node;
{
你这下面多了个大括号啊
return head;}
}
这里又多了一个
node *create(){
node *head,*p,*q;
int i=0;
int x;
head=(node *)malloc(sizeof(node));
while(1){
printf("please input the node:");
scanf("%d",&x);
if(x==0) {break;}
p=(node *)malloc(sizeof(node));
p->data=x;
if(++i==1)
{
head->next=p;
}
else
{
q->next=p;
}
q=p;
}
q->next=NULL;
return head;
}
q没有初始化
length(head);没有定义这个函数

回答3:

试试:
#include “stdio.h”

变成

#include

我用的是linux 没有 stdafx.h 这个库文件 。不能看具体代码