#include <stdio.h>

#define MAXSIZE 100

typedef struct
{
    int elem[MAXSIZE];
    int last;
} SqList;

/* 顺序表插入 */
SqList insert(SqList v, int i, int x)
{
    int k;

    if (i < 1 || i > v.last + 1)
    {
        printf("插入位置错误！\n");
    }
    else if (v.last >= MAXSIZE - 1)
    {
        printf("线性表已满！\n");
    }
    else
    {
        for (k = v.last; k >= i - 1; k--)
        {
            v.elem[k + 1] = v.elem[k];
        }

        v.elem[i - 1] = x;
        v.last++;
    }

    return v;
}

int main()
{
    SqList v;
    int i, j, x;

    v.last = 6;

    printf("原线性表为：\n");

    for (i = 0; i < v.last; i++)
    {
        printf("%d\t", v.elem[i]);
    }

    printf("\n请输入插入位置：");
    scanf("%d", &j);

    printf("请输入插入元素：");
    scanf("%d", &x);

    v = insert(v, j, x);

    printf("插入后的线性表为：\n");

    for (i = 0; i < v.last; i++)
    {
        printf("%d\t", v.elem[i]);
    }

    printf("\n");

    return 0;
}