求大神帮忙看看线性表的插入
#include<stdio.h>#include<stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTNCREMENT 10
typedef struct{
int *elem;
int length;
int listsize;
}Sqlist;
//构造线性表
int main()
{
int i=0,j=0,k=0,t=0;
Sqlist l1,l2,l3;
l1.listsize=LIST_INIT_SIZE;
l2.listsize=LIST_INIT_SIZE;
l3.listsize=LIST_INIT_SIZE;
l1.elem=(int *)malloc(l1.listsize*sizeof(int));
l2.elem=(int *)malloc(l2.listsize*sizeof(int));
l3.elem=(int *)malloc(l3.listsize*sizeof(int));
//定义线性表的容量
printf("请输入l1的长度:\n");
scanf("%d",&l1.length);
//输入l1的长度
printf("请输入l2的长度:\n");
scanf("%d",&l2.length);
//输入l2的长度
printf("请输入l1的元素:\n");
for(i=0;i<l1.length;i++)
{
scanf("%d",&l1.elem[i]);
}
//输入l1的元素
printf("请输入l2的元素:\n");
for(j=0;j<l2.length;j++)
{
scanf("%d",&l2.elem[j]);
}
//输入l2的元素
l3.length=l2.length;
printf("请输入要插入的位置:\n");
for(k=0;k<l3.length;k++)
{
scanf("%d",&l3.elem);
}
//输入要插入的位置
l1.length=l1.length+l2.length;
for(i=0;i<l3.length;i++)
{
t=l3.elem[i];
for(j=l1.length;j<t;j--)
{
l1.elem[j-1]=l1.elem[j];
}
l1.elem[t]=l2.elem[i];
}
//将插入l1的位置后的元素统一向后移一位
//将l2的值插入到l1中
for(i=0;i<l1.length;i++)
{
printf("%d",l1.elem[i]);
}
return 0;
}
检查时没问题
但运行时出现 已停止工作
我没分了给不了分能帮忙看看谢谢啦