打印的时候输入两次就断了,不知道为啥
{
#include <stdio.h>
#include<stdlib.h>
typedef struct Lnode
{
int data;
struct Lnode *next;
} Lnode,*Linklist;
void Createlist(Linklist &L,int n)
{
int i=1;
Lnode p;
L=(Lnode)malloc(sizeof(Lnode));
p=L;
while(i<=n)
{
printf("输入链表第%d个元素的值",i);
scanf("%d",&(p->data));
p=p->next;
i++;
}
}
void ListInsert(Linklist &L,int i,int e,int n)
{
Lnode *p,q;
int j=1;
q=(Lnode)malloc(sizeof(Lnode));
q->data=e;
p=L->next;
while(p&&(j<i-1)&&(i<n))
{
printf("%d,",p->data);
p=p->next;
j++;
}
if(!p||j>i-1||i>n) printf("不合法\n");
q->next=p->next;
p->next=q;
}
int main()
{
int i,e,n;
Lnode *L;
L=(Lnode *)malloc(sizeof(Lnode));
printf("请输入需要链表的元素个数\n");
scanf("%d",&n);
Createlist(L,n);
printf("请输入要插入元素的位序\n");
scanf("%d",&i);
printf("请输入要插入的数值\n");
scanf("%d",&e);
printf("请输入原链表元素个数\n");
scanf("%d",&n);
ListInsert(L,i,e,n);
return 0;
}
}