结构体数组存放从键盘输入的三本书库存信息,包括书名,作者出版年月,库存量,按照库存量降序排序并输出排序后的三本书的信息
时间: 2023-09-11 07:06:55 浏览: 288
图书信息管理系统(C语言)(结构体数组)
5星 · 资源好评率100%
好的,这是一个比较典型的结构体数组排序问题。可以按照以下步骤来实现:
1. 定义结构体类型,包括书名、作者、出版年月和库存量四个成员变量。
```C++
struct BookInfo {
string name;
string author;
string publishDate;
int stock;
};
```
2. 定义结构体数组,大小为3,并从键盘输入每本书的信息。
```C++
BookInfo books[3];
for (int i = 0; i < 3; i++) {
cout << "请输入第" << i + 1 << "本书的信息:" << endl;
cout << "书名:";
cin >> books[i].name;
cout << "作者:";
cin >> books[i].author;
cout << "出版年月:";
cin >> books[i].publishDate;
cout << "库存量:";
cin >> books[i].stock;
}
```
3. 使用冒泡排序算法按照库存量降序排序结构体数组。
```C++
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2 - i; j++) {
if (books[j].stock < books[j + 1].stock) {
// 交换两个结构体元素
BookInfo temp = books[j];
books[j] = books[j + 1];
books[j + 1] = temp;
}
}
}
```
4. 输出排序后的结构体数组信息。
```C++
cout << "按照库存量降序排序后的书的信息如下:" << endl;
for (int i = 0; i < 3; i++) {
cout << "书名:" << books[i].name << endl;
cout << "作者:" << books[i].author << endl;
cout << "出版年月:" << books[i].publishDate << endl;
cout << "库存量:" << books[i].stock << endl;
}
```
完整代码如下:
阅读全文