#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 200
typedef struct
{
char no[20];
char name[50];
float price;
}Elemtype;
typedef struct
{
Elemtype *elem;
int length;
}sleep;
void InitList(sleep *L)
{
L->elem=(Elemtype*)malloc(MAXSIZE);
if(!L->elem)
{
printf("储存分配失败!\n");
system("pause");
return;
}
L->length=0;
}
void GetElem(sleep *L,int i,Elemtype e)
{
if((i<1)||(i>L->length))
{
printf("i值不合理!\n");
}
else
{
e=L->elem[i-1];
}
}
void LocateElem(sleep *L,Elemtype *e)
{
int i;
for(i=0;i<L->length;i++)
{
if(L->elem[i]==e)
{
printf("%s\t%s\t%f\n",L->elem[i].name,L->elem[i].no,L->elem[i].price);
}
}
i=NULL;
}
void ListInsert(sleep *L,int i,Elemtype e)
{
if(i<0)
{
printf("i值不合法!\n");
}
if(i>L->length+1)
{
printf("数组已满!插入失败!\n");
}
if(L->length==MAXSIZE)
{
printf("存储空间已满!插入失败!\n");
}
int j;
for(j=L->length-1;j>=i-1;j--)
{
L->elem[j+1]=L->elem[j];
L->elem[i-1]=e;
L->length++;
}
j=NULL;
}
Elemtype data[]=
{
{"000032","小马宝莉",20},
{"000032","转生成蜘蛛又怎样",60}
};
int main(int argc, char *argv[])
{
sleep Sleep;
InitList(&Sleep);
int i=0;
ListInsert(&Sleep,i,data);
LocateElem(&Sleep,&data);
system("pause");
return 0;
}