定义函数,将主函数中的n种不同书籍(结构数组)按定价从低到高排序。其中书籍信息含书籍名称、定价、书号。
时间: 2024-04-08 15:35:08 浏览: 79
好的,我可以帮你定义一个函数来实现这个功能。你可以将以下代码添加到你的程序中:
```c
#include <stdio.h>
#include <string.h>
// 定义书籍结构体
struct Book {
char name[100];
float price;
int bookNumber;
};
// 按定价从低到高排序函数
void sortBooksByPrice(struct Book books[], int n) {
int i, j;
struct Book temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (books[j].price > books[j+1].price) {
// 交换位置
temp = books[j];
books[j] = books[j+1];
books[j+1] = temp;
}
}
}
}
int main() {
int n, i;
printf("请输入书籍数量:");
scanf("%d", &n);
struct Book books[n];
// 输入书籍信息
for (i = 0; i < n; i++) {
printf("请输入第 %d 本书的名称:", i+1);
scanf("%s", books[i].name);
printf("请输入第 %d 本书的定价:", i+1);
scanf("%f", &books[i].price);
printf("请输入第 %d 本书的书号:", i+1);
scanf("%d", &books[i].bookNumber);
}
// 按定价从低到高排序
sortBooksByPrice(books, n);
// 打印排序后的书籍信息
printf("\n按定价从低到高排序后的书籍信息:\n");
for (i = 0; i < n; i++) {
printf("书籍名称:%s\n", books[i].name);
printf("定价:%.2f\n", books[i].price);
printf("书号:%d\n\n", books[i].bookNumber);
}
return 0;
}
```
这个程序中,我们首先定义了一个书籍的结构体 `Book`,包含书籍名称、定价和书号。然后我们定义了一个函数 `sortBooksByPrice`,该函数使用冒泡排序算法将书籍数组按定价从低到高排序。最后在 `main` 函数中,我们根据用户输入的书籍数量创建一个结构体数组,并调用 `sortBooksByPrice` 函数进行排序,最后打印排序后的书籍信息。
请注意,在实际使用中,我们可以根据需要进行适当的错误处理和输入验证。
阅读全文