为什么不能输出后半部分

#include<stdio.h>
#include<stdlib.h>
#define MAX 100
typedef char datatype;
typedef struct
{
datatype elem[MAX];
int Last;
}List, *SeqList; //定义顺序表类型
SeqList InitList() //初始化顺序表
{
SeqList L;
L = (SeqList)malloc(sizeof(List));
L->Last = -1;
return L;
}
void CreateList(SeqList L) //创建顺序表
{
int i, n;
printf("请输你要创建的顺序表元素个数:");
scanf_s("%d", &n);
printf("请输入你要创建的顺序表:");
for (i = 0; i < n; i++)
{
scanf_s("%c", &L->elem[i],sizeof(L));
L->Last++;
}
}
int Location(SeqList L, datatype x) //查找某元素所在位置
{
int i = 0;
while (L->elem[i] != x && i <= L->Last)
i++;
if (i > L->Last)
return -1;
else
return i;
}
void Insertelem(SeqList L, datatype m) //插入元素
{
int i, n;
printf("请输入你要插入的位置 n=");
scanf_s("%d", &n);
if ((L->Last + 1) > MAX)
printf("表已满,不能插入!");
else
{
L->Last++;
for (i = L->Last; i > n - 1; i--)
L->elem[i + 1] = L->elem[i];
L->elem[n] = m;
}
}
void Deleteelem(SeqList L, datatype m) //删除表中某元素
{
int i, j;
i = Location(L, m);
while (i == -1

img

返回代码44,说明中间出问题爆掉了
代码也不全,出现四个输入选项后的代码是啥呢???