#include <stdio.h>
#include <stdlib.h>
#define ElementType int
typedef struct LNode *List;
struct LNode{
ElementType data;
List Next;
};
void CreatEmpty(List Ptrl)
{
Ptrl=(List) malloc(sizeof(struct LNode));
Ptrl->Next=NULL;
}
void WriteNum(List Ptrl)
{
List p,s;
p=Ptrl;
int number,i;
scanf("%d",&number);
int a[number];
printf("1\n");
for(i=0;i<number;i++)
{
scanf("%d",&a[i]);
if(i==0)
p->data=a[i];
else{
s=(List)malloc(sizeof(struct LNode));
s->data=a[i];
p->Next=s;
p=s;
}
}
p->Next=NULL;
}
List Look(List Ptrl,int i)
{
int k=1;
List p;
p=Ptrl;
while(p&&k<i)
{
p=p->Next;
k++;
}
if(p)
return p;
else
return NULL;
}
int DispList(List Ptrl,int i,ElementType x)
{
List p,s;
if(i==1)
{
s=(List) malloc(sizeof(struct LNode));
s->data=x;
s->Next=Ptrl;
}
else
{
p=Look(Ptrl,i-1);
if(p)
{
s=(List) malloc(sizeof(struct LNode));
s->Next=p->Next;
p->Next=s;
s->data=x;
return 1;
}
else
{
return 0;
}
}
}
void print(List Ptrl)
{
List p;
p=Ptrl;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->Next;
}
}
int main()
{
List Aim;
CreatEmpty(Aim);
WriteNum(Aim);
int i,x;
scanf("%d",&i);
scanf("%d",&x);
if(DispList(Aim,i,x)==1)
print(Aim);
else
printf("error!");
return 0;
}
帮忙看看 WriteNum函数里输入一个数据就停止运行了,,好像是内部地址赋值除了错误,我不知道为什么