主函数删除元素代码写的不对。但是我看不出来那个错了


- #include<stdio.h>
#define MaxSize 100

typedef int ElemType;

typedef struct
{
  int t[MaxSize];
    int length;
}sqlist;

int InterList(sqlist*L,int i,int x ) {
    int j;
    if (i< 0 || i> L->length+1||L->length==MaxSize) //
        return (0);
    
    i--;//将顺序表逻辑序号转化为物理序号
    for( j=L->length;j >i; j--)//i指插入点
        L->t[j] = L->t[j - 1];//将数据t[i]及后面的元素后移一个位置
         L->t[i]=x;//插入x
        L->length++;//顺序表的长度增1
    
    return 1;

}

int DeleteElem(sqlist* L,int i) {
    if (i< 0|| i>L->length + 1||L->length==MaxSize) 
        return (0);
    int j;
    i--;//把i逻辑顺序换算成物理顺序
    
    for (j = i; j < L->length; i++){
        L->t[j] = L->t[j + 1];
        
    }
     L->length--;
     return 1;
}

int main() {
    int b, c, k = 0;
    int d;//==插入点
    sqlist a;
    char Y;
    int z = 1;
    while (z)
    {
        printf("输出元素否:y/n\n");
        scanf_s("%c", &Y);
        getchar();
        if (Y == 'y') {
            printf("输入元素%d\n", k + 1);
            scanf_s("%d", &a.t[k]);
             k++;
             getchar();

        }
            
        else
        {
            z = 0;
            a.length = k;
        }
           

    }
    printf("请输入插入前元素:\n");
    
    for (k=0;k<a.length;k++)
    {
        printf("%d\t", a.t[k]);
    }
    printf("请输入插入的位置\n");
    scanf_s("%d", &d);
    printf("请输入插入元素\n");
    scanf_s("%d",&b);
    c = InterList(&a,d,b);
    if (c==0)
    {
        printf("error!\n");
    }
    else
    {    printf("请输入插入后的元素\n");
        for (k = 0; k < a.length; k++) {
            printf("%d\t",a.t[k]);
        }
    }
    printf("请输入删除位置\n");
    scanf_s("%d", &d);
    c= DeleteElem(&a, d);
    if (c==0)
    {
        printf("error!");
    }
    else
    {
        printf("请输入删除元素\n");
        for (size_t k = 0; k <a.length; k++)
        {
          printf(" %d\t", a.t[k]);
        } 
    }
    
    
    return 0;
}

```

第34行, for (j = i; j < L->length; i++){
i++改为j++,写错啦