在线性表中的插入操作中,我在第3个位置上插入元素20,总是显示“插入位置出错!输入插入的参数错误!” 但是我不知道为什么
这一段代码是打在主函数里边的
printf("请输入要插入的位置:");
scanf("%d,&i");
printf("请输入要插入的元素值:");
scanf("%d",&x);
if(InsElem(&L,i,x))
{
printf("已成功在第%d的位置上插入%d,插入后的线性表为:\n",i,x);
DispList(&L);
}
else
{
printf("输入插入的参数错误!");
}
下面这两段函数是对应的调用函数
int InsElem(SeqList *L,int i,DataType x)
{
int j;
if(L->Length>=MAXLEN)
{
printf("顺序表已满!");
return -1;
}
if(i<1||i>L->Length+1)
{
printf("插入位置出错!");
return 0;
}
if(i==L->Length+1)
{
L->data[i-1]=x;
L->Length++;
return 1;
}
for(j=L->Length-1;j>=i-1;j--)
{
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->Length++;
return 1;
}
}
void DispList(SeqList *L)
{
int i;
for(i=0;iLength;i++)
{
printf("%5d ",L->data[i]);
}
}
期待解答~