编辑代码

#include <stdio.h>
#define MAXSIZE 30
#define ERROR 0
#define OK 1
typedef int ElemType;
typedef int Status; 
typedef struct 
{
    ElemType data[MAXSIZE];
    int length;
}sqlist;
//初始化顺序表
Status InitSqlist(sqlist *L)
{
    L->length=0;
}
//获取顺序表中第i个元素
Status GetElemValue(sqlist L,int i,ElemType *e)
{
    if((L.length==0)||i<1||i>L.length)
            return ERROR;
    *e=L.data[i-1];
    return e;
}
//在顺序表第i个位置插入元素
Status InsertElemValue(sqlist *L,int i,int value)
{
    int k;
    //表满了或者小于第一位或者大于最后一位
    if((L->length == MAXSIZE)||i<1||i>(L->length+1))
        return ERROR;
    //从第i个元素整体向后移动
    for(k=L->length-1;k>=i-1;k--)
    {
        L->data[k+1]=L->data[k];
    }
    L->data[i-1]=value;
    L->length++;
    return OK;
}
//删除顺序表中的i位置
Status DeleteElemValue(sqlist *L,int i)
{
    int k;
    //表空,无法删除,i的位置有无
    if((L->length == 0)||i<1||i>(L->length+1))
        return ERROR;
    //从第i个元素整体向前移动
    for(k=i;k<L->length;k++)
    {
        L->data[k-1]=L->data[k];
    }
    L->length--;
    return OK;
}
//打印顺序表
Status PrintSqlist(sqlist *L)
{
    int k;
    if(L->length == 0)
        return ERROR;
    for(k=0;k<L->length;k++)
    {
        printf("%d ->",L->data[k]);
    }
    printf("\n");
    return OK;
}
int main () {
    int n,m;
    int i=1;
    int status;
    sqlist *L;
    InitSqlist(L);
    printf("please input a number\n");
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&m);
        InsertElemValue(L,i,m);
        i++;
    }
    PrintSqlist(L);
    //GetElemValue(L,1,status);
    //printf("status is %d\n",status);
    return 0;
}