铁路专业有专升本吗:我建立了个顺序表在第I个位置之前插入一个元素E

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 08:39:22
我用C语言编写了个 但是不知道错在拿谁能帮我检查一下程序如下:
#include <stdio.h>
#include <malloc.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct{
char *elem;
int length;
int listsize;
}sqlist;
void exit()
{ printf("error");}

sqlist Initlist_sq()

{sqlist L;
L.elem=(char*)malloc(LIST_INIT_SIZE*sizeof(char));
if(!L.elem)exit();
L.length=0;
L.listsize=LIST_INIT_SIZE;
return L;
}
void List_copy_sq(sqlist *L)
{ int i=0;
/* p=L.elem*/;
scanf("%d",(*L).elem[i]);
while((*L).elem[i]!='#'&&!(*L).elem)
{ ++i;
scanf("%d",(*L).elem[i]);}
}
sqlist List_Insert_sq(sqlist L,int i,char e)
{char *newbase,*q,*w;
if(i<1||i>L.length+1)exit();
if(L.length>=L.listsize){
newbase=(char*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(char));
if(!newbase)exit();
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
q=&L.elem[i-1];
for(w=&L.elem[L.length-1];w>=q;w--)
*(w+1)=*w;
*q=e;
++L.length;
return L;
}
void main()
{ sqlist l;
int i;
char e;
printf("qingshuru'i'he'e'");
scanf("i=%d",&i);
scanf("e=%c",&e);
Initlist_sq();
List_copy_sq(&l);
List_Insert_sq(l,i,e);

}