/*
time:2018/9/20
function:
顺序表的初始化
b1赋值给顺序表
summarize:
1.结构体声明2种
#1#
typedef struct
{
char no[20];//图书ISBN
char name[50];//图书名字
float price;//图书价格
}Book;
调用:Book b1;
#2#
struct
{
char no[20];//图书ISBN
char name[50];//图书名字
float price;//图书价格
};
调用:struct Book b1;
2.exit()在stdlib.h头文件中
3.%d打印float会出现0
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXSIZE 10000 //图书表可能达到的最大长度
typedef struct
{
char no[20];//图书ISBN
char name[50];//图书名字
float price;//图书价格
}Book;
typedef struct
{
Book *elem; //存储空间的基地址
int length; //图书表中当前图书个数
}SqList; //图书表的顺序存储结构类型为SqList
#define OK 0
#define ERROR 1
#define OVERFLOW -2
//顺序表的初始化
int InitList(SqList &L)
{
//构造一个空的顺序表L
L.elem = new Book[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间
if(!L.elem) exit(OVERFLOW); //存储分配失败 退出
L.length = 0; //空表长度为0
return OK;
}
int main()
{
//顺序表的声明
SqList L;
if(InitList(L)!=0) printf("error");
else
{
/* Book b1 详述 */
Book b1;
strcpy(b1.no,"737-7-113-67999-4");
strcpy(b1.name,"数据结构");
b1.price = 35.00;
/* b1赋值给顺序表,同时改变顺序表的长度 */
L.elem[0] = b1;
L.length = 1;
printf("%d:\nBook.no:%s\nBook.name:%s\nBook.price:%.2f\n",L.length,b1.no,b1.name,b1.price);
}
return 0;
}