编写程序,从键盘输入 n (n<10)本书的名称和定价并存入结构数组中,按单价从小到大排序并输出排序后的书籍信息。 输入输出示例:括号内为说明,无需输入输出 输入样例: 3 (n=3) Programming in C 21.5 Programming in VB 18.5 Programming in Delphi 20 输出样例: Programming in VB 18.5 Programming in Delphi 20.0 Programming in C 21.5 用c语言写下代码。
时间: 2024-01-29 15:04:35 浏览: 80
以下是一个示例代码,实现了按照单价从小到大排序的功能:
```c
#include <stdio.h>
#include <string.h>
struct Book {
char name[100];
double price;
};
int main() {
int n;
printf("请输入书籍数量:");
scanf("%d", &n);
// 定义结构体数组
struct Book books[n];
// 依次输入书籍名称和单价
for (int i = 0; i < n; i++) {
printf("请输入第%d本书的名称和单价:", i + 1);
scanf("%s%lf", books[i].name, &books[i].price);
}
// 按照单价从小到大排序
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (books[i].price > books[j].price) {
struct Book temp = books[i];
books[i] = books[j];
books[j] = temp;
}
}
}
// 输出排序后的书籍信息
printf("按单价从小到大排序后的书籍信息为:\n");
for (int i = 0; i < n; i++) {
printf("%s %.1f\n", books[i].name, books[i].price);
}
return 0;
}
```
注意,此处假设书籍名称不超过 100 个字符。如果需要支持更长的书籍名称,可以将结构体中的 `name` 字段改为指针类型,并使用动态内存分配。
阅读全文