用id号比大小,找到比他小的则在他后面的位置插入一个id号和书籍名。采用结构体,不能用链表
时间: 2024-03-25 18:40:07 浏览: 66
基于c的图书管理系统的实现和设计说明.doc
好的,以下是一个示例代码,演示如何使用结构体和数组实现你的要求。
```c++
#include <iostream>
#include <string>
using namespace std;
struct Book {
int id;
string name;
};
void insert(Book books[], int& size, int id, string name) {
int i;
for (i = 0; i < size; i++) {
if (books[i].id >= id) {
break;
}
}
for (int j = size - 1; j >= i; j--) {
books[j + 1] = books[j];
}
books[i].id = id;
books[i].name = name;
size++;
}
void print_list(Book books[], int size) {
for (int i = 0; i < size; i++) {
cout << books[i].id << " " << books[i].name << endl;
}
}
int main() {
const int MAX_SIZE = 100;
Book books[MAX_SIZE];
int size = 0;
insert(books, size, 2, "book2");
insert(books, size, 1, "book1");
insert(books, size, 4, "book4");
insert(books, size, 3, "book3");
print_list(books, size);
return 0;
}
```
解释一下代码:
1. 首先定义了一个结构体 `Book`,包含 id 和 name。
2. 定义了一个 `insert` 函数,用于在数组中插入一个新的结构体。该函数的参数包括数组、数组大小 `size`、要插入的 id 和 name。
3. 在 `insert` 函数中,通过循环找到数组中第一个 id 比要插入的 id 大的结构体,并将其后面的所有结构体向后移动一位。然后将新的结构体插入到该位置上。
4. 定义了一个 `print_list` 函数,用于输出数组中所有结构体的 id 和 name。
5. 在 `main` 函数中,首先定义了一个最大大小为 100 的结构体数组 `books` 和一个变量 `size`,表示数组中目前有多少个结构体。然后依次插入四个结构体,最后调用 `print_list` 函数输出数组中的所有结构体。
希望这个例子对你有所帮助!
阅读全文