用c语言编写给定n本书的名称和定价,查找并输出其中定价最高和最低的书的名称和定价。要求将书籍信息(书名,定价)定义为结构类型。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出书价(正浮点数)。题目保证没有同样价格的书。输出格式:在一行中按照“价格,书名”的格式先后输出价格最高和最低的书。价格保留2位小数

时间: 2023-06-17 14:02:22 浏览: 44
以下是这个问题的C语言代码实现: ```c #include <stdio.h> #include <string.h> #define MAX_BOOKS 10 struct book { char name[31]; float price; }; int main() { int n; struct book books[MAX_BOOKS]; struct book *max_book = NULL, *min_book = NULL; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%s%f", books[i].name, &books[i].price); if (max_book == NULL || books[i].price > max_book->price) { max_book = &books[i]; } if (min_book == NULL || books[i].price < min_book->price) { min_book = &books[i]; } } printf("%.2f,%s\n", max_book->price, max_book->name); printf("%.2f,%s\n", min_book->price, min_book->name); return 0; } ``` 首先,我们定义了一个名为 `book` 的结构体来存储书籍信息,包括书名和价格。然后我们定义了一个数组 `books` 来存储所有的书籍信息。接下来,我们使用一个循环来读取所有书籍的信息,并且在每次读入一本书籍信息时,我们会比较其价格和当前最高价和最低价的书籍,并且更新最高价和最低价的书籍。最后,我们输出最高价和最低价的书籍的信息。 需要注意的是,我们在循环中使用了指向结构体的指针 `max_book` 和 `min_book` 来记录最高价和最低价的书籍。当找到一个价格更高(或更低)的书籍时,我们将指针指向该书籍的结构体。在输出时,我们只需使用指针即可访问最高价和最低价的书籍的信息。

相关推荐

以下是一个简单的 C 语言程序,实现从键盘输入 n 本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出: c #include <stdio.h> #define MAX_BOOKS 10 struct Book { char name[50]; float price; }; int main() { struct Book books[MAX_BOOKS]; int n, i; float min_price, max_price; int min_index, max_index; printf("请输入书的数量(不超过 %d 本):", MAX_BOOKS); scanf("%d", &n); // 输入书名和价格 for (i = 0; i < n; i++) { printf("请输入第 %d 本书的名称和价格(用空格隔开):", i + 1); scanf("%s%f", books[i].name, &(books[i].price)); } // 查找最高价和最低价 min_price = max_price = books[0].price; min_index = max_index = 0; for (i = 1; i < n; i++) { if (books[i].price < min_price) { min_price = books[i].price; min_index = i; } if (books[i].price > max_price) { max_price = books[i].price; max_index = i; } } // 输出结果 printf("定价最低的书是:%s,价格为 %.2f 元\n", books[min_index].name, min_price); printf("定价最高的书是:%s,价格为 %.2f 元\n", books[max_index].name, max_price); return 0; } 在这个程序中,我们定义了一个结构体 Book,表示一本书的名称和价格。我们用一个长度为 MAX_BOOKS 的数组 books 来存储所有输入的书。首先,程序要求用户输入书的数量,然后在一个循环中输入每本书的名称和价格。接着,程序遍历整个数组,查找最高价和最低价,并记录它们的索引。最后,程序输出结果,包括最高价和最低价的书的名称和价格。
下面是使用C语言编写的程序,用于实现从键盘输入n本书的名称和定价并存入结构数组中,查找并输出其中定价最高和最低的书的名称和定价: c #include <stdio.h> #include <string.h> #define MAX_BOOKS 10 struct Book { char name[20]; float price; }; int main() { struct Book books[MAX_BOOKS]; int n; printf("Enter the number of books: "); scanf("%d", &n); // 读取书名和价格,并将它们存储在结构数组中 for (int i = 0; i < n; i++) { printf("Enter the name and price of book %d: ", i + 1); scanf("%s %f", books[i].name, &books[i].price); } // 查找最高价和最低价的书 int max_index = 0, min_index = 0; for (int i = 1; i < n; i++) { if (books[i].price > books[max_index].price) { max_index = i; } if (books[i].price < books[min_index].price) { min_index = i; } } // 输出结果 printf("Highest price: %.1f, %s\n", books[max_index].price, books[max_index].name); printf("Lowest price: %.1f, %s\n", books[min_index].price, books[min_index].name); return 0; } 在程序中,我们首先定义了一个结构体Book,用于存储每本书的名称和价格。然后,我们定义了一个结构体数组books,用于存储所有输入的书籍信息。 接下来,我们从键盘读取一个整数n,表示要输入的书籍数量。接着,使用一个循环读取每本书的名称和价格,并将它们存储在结构数组中。 然后,我们使用另一个循环来查找最高价和最低价的书。在循环中,我们使用两个变量max_index和min_index来保存最高价和最低价的书在结构数组中的下标。我们使用if语句来检查每本书的价格是否比当前最高价或最低价更高或更低,并在必要时更新max_index和min_index的值。 最后,我们使用printf函数输出结果,包括最高价和最低价的书的名称和价格。

最新推荐

C语言测试n的阶乘和x的n次方

今天小编就为大家分享一篇关于C语言测试n的阶乘和x的n次方,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

C语言实现顺序表的顺序查找和折半查找

主要为大家详细介绍了C语言实现顺序表的顺序查找和折半查找,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

C语言中的getchar和putchar的使用方法

主要介绍了C语言中的getchar和putchar的使用方法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

C语言实现3*3数组对角线之和示例

今天小编就为大家分享一篇C语言实现3*3数组对角线之和示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

C语言编写基于TCP和UDP协议的Socket通信程序示例

主要介绍了C语言编写基于TCP和UDP协议的Socket通信程序示例,其中TCP的客户端与服务器端采用多线程实现,需要的朋友可以参考下

基于at89c51单片机的-智能开关设计毕业论文设计.doc

基于at89c51单片机的-智能开关设计毕业论文设计.doc

"蒙彼利埃大学与CNRS联合开发细胞内穿透载体用于靶向catphepsin D抑制剂"

由蒙彼利埃大学提供用于靶向catphepsin D抑制剂的细胞内穿透载体的开发在和CNRS研究单位- UMR 5247(马克斯·穆塞隆生物分子研究专长:分子工程由Clément Sanchez提供于2016年5月26日在评审团面前进行了辩护让·吉隆波尔多大学ARNA实验室CNRS- INSERM教授报告员塞巴斯蒂安·帕波特教授,CNRS-普瓦捷大学普瓦捷介质和材料化学研究所报告员帕斯卡尔·拉斯特洛教授,CNRS-审查员让·马丁内斯蒙彼利埃大学Max Mousseron生物分子研究所CNRS教授审查员文森特·利索夫斯基蒙彼利埃大学Max Mousseron生物分子研究所CNRS教授论文主任让-弗朗索瓦·赫尔南德斯CNRS研究总监-蒙彼利埃大学Max Mousseron生物分子研究论文共同主任由蒙彼利埃大学提供用于靶向catphepsin D抑制剂的细胞内穿透载体的开发在和CNRS研究单位- UMR 5247(马克斯·穆塞隆生物分子研究专长:分子工程由Clément Sanchez提供�

设计一个程序有一个字符串包含n个字符 写一个函数 将此字符串中从第m个字符开始的全部字符复制成为另一个字符串 用指针c语言

以下是用指针实现将字符串中从第m个字符开始的全部字符复制成为另一个字符串的C语言程序: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> void copyString(char *a, char *b, int n, int m); int main() { int n, m; char *a, *b; printf("请输入字符串长度n:"); scanf("%d", &n); a = (char*)malloc(n * sizeof(char)); b =

基于C#多机联合绘图软件的实现-毕业设计论文.doc

基于C#多机联合绘图软件的实现-毕业设计论文.doc

4G车载网络中无线电资源的智能管理

4G车载网络中无线电资源的智能管理汽车网络从4G到5G的5G智能无线电资源管理巴黎萨克雷大学博士论文第580号博士学院博士专业:网络、信息与通信研究单位:巴黎萨克雷大学,UVSQ,LI PARAD,78180,法国伊夫林省圣昆廷参考:凡尔赛大学-伊夫林省圣昆廷论文于11月30日在巴黎萨克雷发表并答辩2021年,由玛丽亚姆·阿卢奇·马迪陪审团组成Pascal Lorenz总裁上阿尔萨斯大学大学教授Mohamed Yacine Ghamri-Doudane拉罗谢尔大学报告员和审查员教授Rami Langar报告员和审查员马恩河谷大学Oyunchimeg SHAGDARVEDECOM研发(HDR)团队负责人审查员论文方向Samir TOHME博士生导师巴黎萨克雷大学名誉教授UVSQ/LI- PARADKALLEL KHEMIRI共同监督巴黎萨克雷UVSQ/大卫Guy Pujolle受邀索邦大学Tara Yahiya邀请巴黎萨克雷大学/LISN高级讲师(HDR)博士论文NNT:2021UPASG061谢谢你首先,我要感谢我的论文导师M.萨米�