描述

定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据完成图书信息表的创建,然后计算所有图书的平均价格,将所有低于平均价格的图书价格提高20%,所有高于或等于平均价格的图书价格提高10%,最后逐行输出价格修改后的图书信息。

输入

输入n+1行,前n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0)。其中书号和书名为字符串类型,价格为浮点数类型。

输出

总计n+1行,第1行是修改前所有图书的平均价格,后n行是价格修改后n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔。其中价格输出保留两位小数。

输入样例 1

9787302257646 Data-Structure 35.00
9787302164340 Operating-System 50.00
9787302219972 Software-Engineer 32.00
9787302203513 Database-Principles 36.00
9787810827430 Discrete-Mathematics 36.00
9787302257800 Data-Structure 62.00
9787811234923 Compiler-Principles 62.00
9787822234110 The-C-Programming-Language 38.00
0 0 0

输出样例 1

43.88
9787302257646 Data-Structure 42.00
9787302164340 Operating-System 55.00
9787302219972 Software-Engineer 38.40
9787302203513 Database-Principles 43.20
9787810827430 Discrete-Mathematics 43.20
9787302257800 Data-Structure 68.20
9787811234923 Compiler-Principles 68.20
9787822234110 The-C-Programming-Language 45.60
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
float avg = 0.00;把float设置成全局变量,跟static静态类型的想法类似
class Book
{
public:string id, name;float price;
};
class Sqlist
{
public:int length;Book* elem;
};
void Init(Sqlist& l)
{l.elem = new Book[1000];if (!l.elem)exit(1);l.length = 0;
}
void Insert(Sqlist& l)
{for (int i = 0; i < 1000; i++){cin >> l.elem[i].id >> l.elem[i].name >> l.elem[i].price;avg += l.elem[i].price;l.length++;if (l.elem[i].id == "0" && l.elem[i].name == "0" && l.elem[i].price == 0){l.length--;//先让长度减一,因为最后那三个0代表的一个单位不是我们想要的avg /= l.length;return;}}
}
void Change(Sqlist& l)
{for (int i = 0; i < l.length; i++){if (l.elem[i].price < avg)l.elem[i].price *= 1.2;//注意不是乘以0.2,0.1elsel.elem[i].price *= 1.1;}
}
void Print(Sqlist l)
{printf("%.2f\n", avg);for (int i = 0; i < l.length; i++)printf("%s %s %.2f\n", l.elem[i].id.c_str(), l.elem[i].name.c_str(), l.elem[i].price);
}
int main()
{Sqlist l;Init(l);Insert(l);Change(l);Print(l);
}

基于顺序存储结构的图书信息表的修改(C++)相关推荐

  1. 基于顺序存储结构的图书信息表

    利用结构体数组模拟实现线性表 例题一 基于顺序存储结构的图书信息表的创建和输出 题目描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的 ...

  2. 数据结构——基于顺序存储结构的图书信息表的创建和输出

    1.基于顺序存储结构的图书信息表的创建和输出 问题描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建.然后,统计图书表中的图书个数,同时逐行输出每本图书的 ...

  3. 基于顺序存储结构的图书信息表的图书去重(C++)

    描述 出版社出版的任何一本图书的书号(ISBN)都是唯一的,即图书表中不允许包含书号重复的图书.定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建(书号可能重复 ...

  4. 基于顺序存储结构的图书信息表的旧图书的出库(C++)

    描述 ​定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的待出库的旧图书的位置,将该图书从图书表中删除,最后输出该图书出库后的所有图书的信息. ...

  5. 基于顺序存储结构的图书信息表的新图书的入库(C++)

    描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置上,最后输出新图书入库后所有 ...

  6. 基于顺序存储结构的图书信息表的最佳位置图书的查找(C++)

    描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的最佳位置的序号,查找该位置上的图书,输出相应图书的信息. 输入 总计n+m+2行.首先输 ...

  7. 基于顺序存储结构的图书信息表的最爱图书的查找(C++)

    描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的最爱图书的名字,查找最爱的图书,输出相应图书的信息. 输入 总计n+m+2行.首先输入n ...

  8. 基于顺序存储结构的图书信息表的最贵图书的查找(C++)

    描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后查找价格最高的图书,输出相应图书的信息. 输入 总计输入n+1行,其中,第一行是图书数目n,后n行 ...

  9. 基于顺序存储结构的图书信息表的逆序存储(C++)

    描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后将读入的图书信息逆序存储,逐行输出逆序存储后每本图书的信息. 输入 输入n+1行,第一行是图书数目 ...

最新文章

  1. hive环境搭建提示: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
  2. 树的懒加载怎么用ajax调接口,ElementUI tree树形控件的懒加载使用
  3. c语言 文件名变量,C语言中,如何用根据不同的变量来更改文件名?
  4. 单点登陆的技术实现机制
  5. java range(10)_Java Year range()用法及代码示例
  6. 深度学习的数学 (4)张量、矩阵、导数
  7. LeNet试验(四)使用shuffle label观察网络的记忆能力
  8. 如何去掉ECShop 2.7.2中的Powered by ECShop字符
  9. 一个Web前端自学者的自述
  10. Linux下apache与tomcat完美整合笔记
  11. 在virtualenv中安装NumPy、 SciPy、 scikit-learn、 matplotlib
  12. Leetcode130.被围绕的区域
  13. 可道云 docker 群晖_利用群晖NAS同步文献
  14. 数据库备份的三种方式 不要再干掉数据库跑路啦~
  15. 利用python打乱xlsx表格
  16. 有道云笔记分享_写完笔记后干啥 有道云笔记分享技巧
  17. 中关村-DIY之笔记本做wifi热点供手机无线上网
  18. windows10 LTSC版本 安装应用商店及聚焦屏保
  19. C语言学习笔记——(三)静态开辟内存和动态开辟内存
  20. BgSub 无需上传图片即可在线自动抠图的AI工具

热门文章

  1. SpringBoot 上传文件(单个、多个文件)
  2. 图书馆管理系统——超期付款
  3. 关于HashSet类对象使用迭代器无法进行增删操作的问题
  4. java之Stack详细介绍
  5. HDU 5919 分块做法
  6. Android 基本开发规范(必读)
  7. Flutter 实现微信摇一摇的功能 Flutter 加速度感应
  8. java 程序语言中的LinkedList 集合基本方法演示
  9. Javascript设计模式(四)-- 建造者模式
  10. VC++判断文件或文件夹是否存在(转)