c语言:定义函数,将主函数中的n种不同书籍(结构数组)按定价从低到高排序。其中书籍信息含书籍名称、定价、书号。
时间: 2024-04-14 11:25:56 浏览: 8
您可以使用C语言的结构体和排序算法来实现将书籍按照定价从低到高进行排序的。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
// 定义书籍结构体
struct Book {
char name[50];
float price;
int id;
};
// 交换两个书籍的位置
void swap(struct Book *a, struct Book *b) {
struct Book temp = *a;
*a = *b;
*b = temp;
}
// 根据定价进行排序
void sortByPrice(struct Book books[], int n) {
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (books[j].price > books[j + 1].price) {
swap(&books[j], &books[j + 1]);
}
}
}
}
int main() {
int n;
printf("请输入书籍的数量:");
scanf("%d", &n);
struct Book books[n];
int i;
// 输入书籍信息
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].id);
}
// 按照定价排序
sortByPrice(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", books[i].id);
}
return 0;
}
```
该程序首先通过输入书籍数量,然后依次输入每本书籍的名称、定价和书号。接着调用 `sortByPrice` 函数对书籍按照定价进行排序。最后打印排序后的书籍信息。
请注意,该示例代码没有对输入进行严格的错误处理,请确保输入的数据格式正确,以避免程序出错。