《C++ Primer Plus》(第6版)第5章编程练习

news/2024/4/19 9:10:59/文章来源:https://blog.csdn.net/ProgramNovice/article/details/129257124

《C++ Primer Plus》(第6版)第5章编程练习

  • 《C++ Primer Plus》(第6版)第5章编程练习
    • 1. 计算闭区间内的整数和
    • 2. 重新编写程序清单5.4
    • 3. 累加
    • 4. 投资价值
    • 5. 销售情况
    • 6. 销售情况2
    • 7. 汽车
    • 8. 销售情况2
    • 9. 销售情况2
    • 10. 销售情况2

《C++ Primer Plus》(第6版)第5章编程练习

1. 计算闭区间内的整数和

编写一个要求用户输入两个整数的程序。该程序将计算并输出这两个整数之间(包括这两个整数)所有整数的和。这里假设先输入较小的整数。例如,如果用户输入的是2和9,则程序将指出2~9之间所有整数的和为44。

代码:

#include <iostream>
using namespace std;
int main()
{int a, b, sum = 0;cout << "Please give me two numbers a and b(a<b),\n";cout << " and I will calculate the sum of the integers in the interval [a,b].\n";cout << "a: ";cin >> a;cout << "b: ";cin >> b;for (int i = a; i <= b; i++)sum += i;cout << "result:" << sum << endl;system("pause");return 0;
}

运行结果:

在这里插入图片描述

2. 重新编写程序清单5.4

使用 array对象(而不是数组)和 long double(而不是long long)重新编写程序清单5.4,并计算100!的值。

代码:

#include <iostream>
#include <array>
using namespace std;
const int ArrSize = 101;int main()
{array<long double, ArrSize> factorials;factorials[0] = factorials[1] = 1;for (int i = 2; i < ArrSize; i++)factorials[i] = i * factorials[i - 1];cout << "100!=" << factorials[100] << endl;system("pause");return 0;
}

运行结果:

在这里插入图片描述

3. 累加

编写一个要求用户输入数字的程序。每次输入后,程序都将报告到目前为止,所有输入的累计和。当用户输入0时,程序结束。

代码:

#include <iostream>
using namespace std;int main()
{int num, sum = 0;cout << "Please enter the number,\n";cout << "and I will calculate the cumulative sum of the input.\n";cout << "(enter 0 to end the program)" << endl;while (cin >> num && num != 0){sum += num;cout << "total:" << sum << endl;}cout << "Done!\n";system("pause");return 0;
}

运行结果:

在这里插入图片描述

4. 投资价值

Daphne 以10%的单利投资了100美元。也就是说,每一年的利润都是投资额的10%,即每年10美元:
利息=0.10×原始存款
而Cleo以5%的复利投资了100美元。也就是说,利息是当前存款(包括获得的利息的5%,:
利息=0.05×当前存款
Cleo在第一年投资100美元的盈利是5%——得到了105美元。下一年的盈利是105美元的5%—–即5.25美元,依此类推。请编写一个程序,计算多少年后,Cleo 的投资价值才能超过Daphne的投资价值,并显示此时两个人的投资价值。

代码:

#include <iostream>
using namespace std;
#define SIMPLE_RATE 0.10
#define COMPOUND_RATE 0.05
int main()
{double Daphne = 100, Cleo = 100;double principal = 100;unsigned year = 0;while (Cleo <= Daphne){Daphne += SIMPLE_RATE * principal;Cleo += COMPOUND_RATE * Cleo;year++;// cout << "year " << year << ":\n";// cout << "Daphne:" << Daphne << endl;// cout << "Cleo:" << Cleo << endl;}cout << year << " years later,";cout << " the investment value of Cleo exceeds the investment value of Daphne.\n";system("pause");return 0;
}

运行结果:

在这里插入图片描述

5. 销售情况

假设要销售《C++ For Fools》一书。请编写一个程序,输入全年中每个月的销售量(图书数量,而不是销售额)。程序通过循环,使用初始化为月份字符串的char*数组(或string对象数组逐月进行提示,并将输入的数据储存在一个int数组中。然后,程序计算数组中各元素的总数,并报告这一年的销售情况。

代码:

#include <iostream>
using namespace std;
#define MONTHS 12
const string months[12] = {"January","February","March","April","May","June","July","August","September","October","November","December"};int main()
{int sales[MONTHS];int sum = 0;for (int i = 0; i < MONTHS; i++){cout << "Please enter the sales volume for " << months[i] << ":";cin >> sales[i];}for (int i = 0; i < MONTHS; i++){cout << months[i] << " sales:" << sales[i] << endl;sum += sales[i];}cout << "Annual sales:" << sum << endl;system("pause");return 0;
}

运行结果:

在这里插入图片描述

6. 销售情况2

完成编程练习5,但这一次使用一个二维数组来存储输入——3年中每个月的销售量。程序将报告每年销售量以及三年的总销售量。

代码:

#include <iostream>
using namespace std;
#define YEAR 3
#define MONTH 12
const string months[12] = {"January","February","March","April","May","June","July","August","September","October","November","December"};int main()
{int sales[YEAR][MONTH] = {0};int annualSales[YEAR] = {0};int sum = 0;for (int i = 0; i < YEAR; i++){for (int j = 0; j < MONTH; j++){cout << "Please enter the sales volume for year " << i + 1 << " month " << months[j] << ":";cin >> sales[i][j];}}for (int i = 0; i < YEAR; i++){for (int j = 0; j < MONTH; j++){cout << "year " << i + 1 << " month " << months[i] << " sales:" << sales[i][j] << endl;annualSales[i] += sales[i][j];}}cout << "Annual sales:\n";for (int i = 0; i < YEAR; i++){cout << "year " << i + 1 << ":" << annualSales[i] << endl;sum += annualSales[i];}cout << "Total sales:" << sum << endl;system("pause");return 0;
}

7. 汽车

设计一个名为car的结构,用它存储下述有关汽车的信息:生产商(存储在字符数组或string对象中的字符串)、生产年份(整数)。编写一个程序,向用户询问有多少辆汽车。随后,程序使用new来创建一个由相应数量的car结构组成的动态数组。接下来,程序提示用户输入每辆车的生产商(可能由多个单词组成)和年份信息。请注意,这需要特别小心,因为它将交替读取数值和字符串(参见第4章)。最后,程序将显示每个结构的内容。该程序的运行情况如下:

How many cars do you wish to catalog? 2car #1:
Please enter the make: Hudson  HornetPlease enter the year made: 1952
car #2:
please  efter themake: Kaiserplease enter  the year made:1951Here is your colrection :
1952 Hudson Hornet
1951 Kaiser

代码:

#include <iostream>
#include <string>
using namespace std;
struct Car
{string producer;int madeYear;
};
int main()
{int num = 0;cout << "How many cars do you wish to catalog? ";cin >> num;cin.get();Car *cars = new Car[num];for (int i = 0; i < num; i++){cout << "car #" << i + 1 << ":\n";cout << "Please enter the make: ";getline(cin, cars[i].producer);cout << "Please enter the year made: ";cin >> cars[i].madeYear;cin.get();}cout << "Here is your collection:\n";for (int i = 0; i < num; i++)cout << cars[i].madeYear << " " << cars[i].producer << endl;system("pause");return 0;
}

运行结果:

在这里插入图片描述

8. 销售情况2

代码:

在这里插入代码片

运行结果:

9. 销售情况2

代码:

在这里插入代码片

运行结果:

10. 销售情况2

代码:

在这里插入代码片

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75197.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【技术美术图形部分】简述主流及新的抗锯齿技术

电脑的世界里没有曲线&#xff0c;都是三角面组成一个个模型的&#xff0c;因此一定会出现走样&#xff08;锯齿&#xff09;的情况&#xff0c;只是严重与否的问题&#xff0c;而AA也是实时渲染最难解决的问题之一。 Sampling&Artifacts Lecture 06 Rasterization 2 (An…

MAML算法详解(元学习)

文章目录回顾元学习MAML算法MAML和预训练模型的区别数学推导MAML实施细节总结回顾元学习 元学习的基本知识参考这篇博客元学习和机器学习的对比 MAML算法 学习初始化参数&#xff0c;所有任务的初始化的参数都是一样的 MAML和预训练模型的区别 MAML使用的是ϕ\phiϕ…

阶段十:总结专题(第六章:缓存篇)

阶段十&#xff1a;总结专题&#xff08;第六章&#xff1a;缓存篇&#xff09;Day-第六章&#xff1a;缓存篇1. Redis 数据类型**String****List****Hash****Sorted Set**2. keys 命令问题3. 过期 key 的删除策略4. Redis 持久化**AOF 持久化****AOF 重写****RDB 持久化****混…

Python 中 openpyxl 模块封装,读写 Excel 文件中自动化测试用例数据

只有测试数据和错误提示信息不同&#xff0c;其他代码都是一样的&#xff0c;不这样不易修改数据和维护&#xff0c;会有两点痛点 1.代码冗余极其严重, 程序可读性不佳 2.程序拓展性很差 往往我们在自动化测试汇总&#xff0c;会将数据放在 Excel 文件、CSV文件、数据库 Py…

Python-scatter散点图及颜色大全

# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as pltplt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus] False #matplotlib画图中中文显示会有问题&#xff0c;需要这两行设置默认字体plt.xlabel(X) plt.ylabel(Y) plt.xlim…

【IP技术】ipv4和ipv6是什么?

IPv4和IPv6是两种互联网协议&#xff0c;用于在互联网上标识和寻址设备。IPv4&#xff08;Internet Protocol version 4&#xff09;是互联网协议的第四个版本&#xff0c;是当前广泛使用的互联网协议。IPv4地址由32位二进制数构成&#xff0c;通常表示为4个十进制数&#xff0…

大数据技术之Hive(四)分区表和分桶表、文件格式和压缩

一、分区表和分桶表1.1 分区表partitionhive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录&#xff0c;每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择式选择查询所需要的分区&#xff0c;这样的查询效率辉提高很多。1.1.1 分区表基本语…

2023年蜂巢科技最新面试题

2023年蜂巢科技最新面试题 bio与nio的区别 bio同步阻塞io&#xff1a;在此种⽅式下&#xff0c;⽤户进程在发起⼀个IO操作以后&#xff0c;必须等待IO操作的完成&#xff0c;只有当真正完成了IO操作以后&#xff0c;⽤户进程才能运⾏。JAVA传统的IO模型属于此种⽅式&#xff0…

flink常用算子介绍

flink任务中【Transformation 数据转换】是对数据进行操作&#xff0c;有 Map、FlatMap、Filter、KeyBy 、Reduce 、Fold 、Aggregations、Window 、WindowAll 、Union 、Window join 、Split 、Select 、Project 等&#xff0c;通过对数据的操作&#xff0c;转换成想要的数据&…

HttpRunnerManager部署

基于HttpRunner的接口自动化测试平台: HttpRunner, djcelery and Django_. HttpRunner手册: http://cn.httprunner.org/git地址&#xff1a;httprunner/HttpRunnerManager: 基于 HttpRunner 的 Web 测试平台&#xff0c;已停止维护。 (github.com)部署机器&#xff1a;linux部署…

vue3+rust个人博客建站日记4-Vditor搞定MarkDown

即然是个人博客&#xff0c;那么绝对不能丢给自己一个大大的输入框敷衍了事。如果真是这样&#xff0c;现在就可以宣布项目到此结束了。如今没人享受用输入框写博客。作为一个有追求的程序员&#xff0c;作品就要紧跟潮流。 后来&#xff0c;Markdown 的崛起逐步改变了大家的排…

华为OD机试题,用 Java 解【火星文计算 2】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

跑步戴哪种蓝牙耳机比较好,五款适合跑步的蓝牙耳机推荐

跑步当中佩戴的蓝牙耳机&#xff0c;佩戴舒适度以及牢固度是我们首要关注的&#xff0c;耳机的材质还有耳机的防水能力&#xff0c;都是十分需要注意的方面。那具体在挑选运动耳机当中需要如何选择呢&#xff1f;下面收集的一些在运动当中比较好用的运动蓝牙耳机分享给大家。1、…

华为OD机试题,用 Java 解【机器人走迷宫】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

力扣每日一题(2023年2月)

2023年2月期每日一题第一天 &#xff08;2325. 解密消息&#xff09;第十六天&#xff08;2341. 数组能形成多少数对&#xff09;第十七天 &#xff08;1139. 最大的以 1 为边界的正方形&#xff09;第十八天 &#xff08;1237. 找出给定方程的正整数解&#xff09;第十九天 &a…

【再临数据结构】Day1. 稀疏数组

前言 这不单单是稀疏数组的开始&#xff0c;也是我重学数据结构的开始。因此&#xff0c;在开始说稀疏数组的具体内容之前&#xff0c;我想先说一下作为一个有着十余年“学龄”的学生&#xff0c;所一直沿用的一个学习方法&#xff1a;3W法。我认为&#xff0c;只有掌握了正确的…

Apache Hive入门

文章目录一、Apache Hive概述1.1、什么是Hive1.2、使用Hive原因1.3、Hive和Hadoop关系二、Hive功能思想2.1、映射信息记录2.2、SQL语法解析、编译三、Hive架构、组件3.1、Hive架构图3.2Hive组件四、Hive常用操作4.1、数据类型4.1.1、基本数据类型4.1.2、集合数据类型4.2、数据库…

本地新项目上传到git的详细步骤

前提&#xff1a;你本地的项目目录里要记得添加.gitignore忽略文件&#xff0c;免得把一些无用的文件提交&#xff0c;内容如下&#xff0c;可直接粘贴&#xff1a; # Created by .ignore support plugin (hsz.mobi) ### Java template # Compiled class file *.class# Log fi…

2023-02-28 mmap的原理及使用-思考

摘要: 最近在使用mmap解决数据库内存占用损耗过高导致OOM的问题, 不得不说在有些场景下mmap是非常有用. 本文主要涉及一些对mmap的思考. mmap本身的思考: mmap和文件系统的交互规则是什么mmap中给进程虚拟内存映射的文件上的部分,是什么? 为什么是页缓存? 有没有文件缓存?…

华为OD机试题,用 Java 解【连续字母长度】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…