#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 1000
typedef struct {
char no[20];
char name[60];
float price;
} Book;
typedef struct {
Book *elem;
int length;
} SqList;
int BubbleSort_Sq(SqList L) {
for (int i = 0; i < L.length - 1; i++) {
for (int j = 0; j < L.length - i - 1; j++) {
if (L.elem[j].price < L.elem[j + 1].price) {
Book book = L.elem[j];
L.elem[j] = L.elem[j + 1];
L.elem[j + 1] = book;
}
}
}
return OK;
}
int main() {
SqList bookList;
int i = 0;
int maxBooks = MAXSIZE; // Define a maximum number of books to avoid overflows
bookList.elem = (Book *)malloc(maxBooks * sizeof(Book));
bookList.length = 0; // Initialize the length to 0
char input[20]; // Buffer to store input
while (1) {
if (i >= maxBooks) {
printf("已达到书的最大数量,无法继续添加。\n");
break;
}
// Read input without prompts
scanf("%s", input);
// Check if input is '0 0 0'
if (strcmp(input, "0") == 0) {
break; // Input is '0', so stop
}
// Store input in bookList
strcpy(bookList.elem[i].no, input);
scanf("%s%f", bookList.elem[i].name, &bookList.elem[i].price);
i++;
}
bookList.length = i; // Update the actual number of books entered
// Sort the bookList
BubbleSort_Sq(bookList);
// Save the sorted list to out.txt
FILE *file = fopen("out.txt", "w");
if (file == NULL) {
printf("打开文件时出错!");
return ERROR;
}
for (i = 0; i < bookList.length; i++) {
fprintf(file, "ISBN: %s, 书名: %s, 价格: %.2f\n", bookList.elem[i].no, bookList.elem[i].name, bookList.elem[i].price);
}
fclose(file);
// Display the sorted list in the console
printf("\n书籍的排序列表:\n");
for (i = 0; i < bookList.length; i++) {
printf("ISBN: %s, 书名: %s, 价格: %.2f\n", bookList.elem[i].no, bookList.elem[i].name, bookList.elem[i].price);
}
free(bookList.elem);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
1.基于顺序存储结构的图书信息表的创建和输出 2..基于顺序存储结构的图书信息表的排序 3.基于顺序存储结构的图书信息表的修改

共3个文件
txt:3个

需积分: 5 8 下载量 49 浏览量
2023-11-02
00:41:45
上传
评论 6
收藏 2KB ZIP 举报
温馨提示
1.基于顺序存储结构的图书信息表的创建和输出 问题描述定义一个包含图书信息 (书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建。然后,统计图书表中的图书个数,同时逐行输出每本图书的信息。输入要求输入n+1行,其中前n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第n+1行是输入结束标志: 000(空格分隔的三个0)。其中,书号和书名为字符串类型,价格为浮点数类型输出要求总计n+1行,第1行是所创建的图书信息表中的图书个数,后n行是n本图书的信息(书号书名、价格),每本图书信息占一行,书号书名、价格用空格分隔。其中,价格输出保留两位小数。 输入样例 9787302257646程序设计基础25.00 9787302164340程序设计基础(第2版) 20.009787302219972 单片机技术及应用32.00 9787302203513 单片机原理与应用技术26.009787810827430工业计算机控制技术-原理与应用29.00 9787811234923 汇编语言程序设计教程21.00 000 输
资源推荐
资源详情
资源评论









格式:x-rar 资源大小:405.5KB








格式:msaccess 资源大小:332.0KB











收起资源包目录




共 3 条
- 1
资源评论


刚好五个字575
- 粉丝: 849
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 服务支持人员业务模型.ppt
- 任务8拱桥施工20170919修改.ppt
- 软件工程课程设计――餐厅点餐系统.doc
- 系统问题解答[1].doc
- [河南]框剪结构图书馆卫生间防水施工方案.doc
- 《产品的自动编程与加工》课程标准.doc
- 单片机控制的智能电动小车的方案设计书01.doc
- 协信集团定岗定编、核心业务流程和激励体系咨询报告.ppt
- 合生创展集团成本管理办法.doc
- 某深基坑支护施工组织设计.doc
- 配电板及户表板的安装工艺技术交底.doc
- 基于非结构化数据处理的网络舆情监测系统.docx
- 钢筋工程预算入门精讲(图文计算)54页.ppt
- plc与触摸屏控制系统设计方案实例.doc
- 培训效果评估管理规程.doc
- 工程施工进度管理--课件.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
