c语言单链表只输入一个数字就停止运行了
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node* next;
}node,linklist;
void initlist(node L)
{
L->next=NULL;
}
void createlist(node* head,int n)
{
node* s;
node* tail;
int j;
tail=head;
for(int i=0;i<n;i++)
{
scanf("%d",&j);
s=(node*)malloc(sizeof(node));
s->data=j;
tail->next=s;
tail=s;
}
}
void printlist(node* L)
{
while(L->next!=NULL)
{
printf("%d ",L->next->data);
L=L->next;
}
}
void enterlist(node* L,int x,int e)
{
node*p,s;
int i=0;
if(x<=0)
{
printf("-1");
}
p=L;
while(p!=NULL&&i<x-1)
{
p=p->next;
i++;
}
if(p==NULL)
{
printf("-1");
}
s=(node)malloc(sizeof(node));
s->data=e;
s->next=p->next;
p->next=s;
}
int main()
{
linklist L;
int n,x,e;
scanf("%d",&n);
initlist(L);
createlist(L,n);
scanf("%d%d",&x,&e);
enterlist(L,x,e);
printlist(L);
return 0;
}