写出代码:基于顺序存储结构的图书信息表的最贵图书的查找
时间: 2023-12-19 18:06:01 浏览: 94
线性表的顺序存储API实现以及测试函数
可以,以下是基于顺序存储结构的图书信息表的最贵图书的查找的代码:
```c
#define MAX_SIZE 100 // 最大存储空间
typedef struct {
char name[30]; // 书名
char author[20]; // 作者
float price; // 价格
} Book; // 图书信息结构体
typedef struct {
Book data[MAX_SIZE]; // 数据存储数组
int length; // 当前长度
} BookList; // 图书信息表结构体
int findMostExpensive(BookList list) {
int index = -1; // 不存在最贵图书,返回-1
float max_price = 0.0;
for (int i = 0; i < list.length; i++) {
if (list.data[i].price > max_price) {
max_price = list.data[i].price;
index = i;
}
}
return index;
}
```
使用方法:
1. 定义一个基于 `BookList` 结构体的图书信息表变量 `list` 并初始化;
2. 调用 `findMostExpensive` 函数传入 `list`,返回最贵图书在数组 `data` 中的下标。如果返回值为-1,则不存在最贵图书。
**注意事项:**
1. 实际场景中,如果 `BookList` 中的 `length` 属性为0,则表示 `data` 数组中没有数据,不能调用 `findMostExpensive` 函数;
2. `findMostExpensive` 函数的时间复杂度为 $O(n)$,如果数据量较大,建议使用其他高效算法。
阅读全文