#include
#include
#define MAXSIZE 100
#define OVERFLOW -2
#define OK 1
#define Status int
#define ERROR 0
//第一个结构体
typedef struct{
char no[20];
char name[50];
float price;
}Book;
//第二个结构体
typedef struct{
Book *elem;
int length;
}SqList;
//初始化顺序表
Status InitList(SqList &L){
L.elem=new Book[MAXSIZE];
if(!L.elem) exit(OVERFLOW);
L.length=0;
printf("初始化线性表成功!\n");
return OK;
}
//将L重置为空表
ClearList(SqList &L){
L.length=0;
printf("置空成功!\n");
}
//返回L中第一个值与e相同的元素在L中的位置。若这样的元素不存在,则返回值为0。
int LocatElem(SqList &L,Book &e){
int i;
for(i=0;i<L.length;i++)
if(L.elem[i]==e) return i+1;
return 0;
}
//主函数
int main(){
SqList L;
Book e;
for(i=0;i<10;i++){
scanf("%s%s%f",&e.no,&e.name,&e.price)
L.elem[i]=e;
L.length++;
}
Book d;
d.name=tain;
d.no=ss;
d.price=123;
ListInsert(L);
ClearList(L);
LocatElem(L,d);
}
加上一个函数:
#include <string.h>
int isEqual(Book b1, Book b2)
{
return strcmp(b1.no, b2.no) == 0 && b1.price == b2.price && strcmp(b1.name, b2.name);
}
调用
if (isEqual(L.elem[i], e)) return i + 1;