《C++Primer》第五版习题答案--第五章【学习笔记】
《C++Primer》第五版习题答案--第五章【学习笔记】
ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考。
作者:cosefy
Date: 2020/1/15
第五章:语句
练习5.3:
代码可读性降低了。
while(val<=10)
sum+=val,++val;
练习5.4:
- iter未初始化。
- if语句中的status超过作用范围,且status在while中进行了判断。
练习5.5:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
//vector<string> str{ "甲","乙","丙" };
int score;
string rank;
while (cin >> score)
{
if (score < 60)
rank = "丙";
else
if (score < 90)
rank = "乙";
else
rank = "甲";
cout << rank << endl;
return 0;
}
}
练习5.6:
rank = score > 90 ? "甲" : score > 60 ? "乙":"丙";
练习5.7:
- ival2后少了分号。
- 忘记加上花括号
- 第二个if语句中的ival超过了作用范围,且第一个if语句已经进行了判断。
- if语句中条件永远为False。
练习5.9:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a_count = 0, e_count = 0, i_count = 0, o_count = 0, u_count = 0;
int other_count = 0;
char c;
while (cin >> c)
if (c == 'a')
++a_count;
else if (c == 'e')
++e_count;
else if (c == 'i')
++i_count;
else if (c == 'o')
++o_count;
else if (c == 'u')
++u_count;
else
++other_count;
cout << "a: " << a_count << endl;
cout << "e: " << e_count << endl;
cout << "i: " << i_count << endl;
cout << "o: " << o_count << endl;
cout << "u: " << u_count << endl;
return 0;
}
练习5.10:
代码形式如下所示:
case 'a':
case'A':
++a_count;
break;
练习5.11:
修改while判断语句为:
while (cin >>noskipws>> c)
这样不会忽略空白,另外加上统计制表符等的case语句就可以了。
练习5.12:
保留上一个字符,如果当前字符为'f'或'i'或'l',则判断上个字符是否是'f'。
练习5.13:
- 忘记break
- ix定义位置错误
- case后面接整型常量表达式
- case后面是整型常量,可以用const修饰ival,jval,kval。
练习5.14:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
string now_word, last_word,record_word;
int max = 1,count=1,flag=0;
while (cin >> now_word)
{
if (now_word == last_word) {
++count;
last_word = now_word;
}
else
{
if (max < count)
{
max = count;
record_word = last_word;
}
count = 1;
last_word = now_word;
flag = 1; //标记出现了不重复的单词
}
}
if (flag==0)
cout << "仅有单词"<<now_word << "出现了" << count << "次" << endl;
else
cout << record_word << "出现了"<<max << "次" << endl;
return 0;
}
练习5.15:
- ix定义位置错误,应在for循环外定义
- 缺少一个分号
- 无限循环
练习5.17:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>v1{ 1,0,2,2,3,5 };
vector<int>v2{ 1,0,2,2, };
auto it1 = v1.begin();
auto it2 = v2.begin();
for (; it2 != v2.end(); ++it1, it2++)
if (*it2 != *it1)
break;
cout << (it2 == v2.end() ? "YES" : "NO");
return 0;
}
练习5.18:
- do语句块忘记花括号
- while条件语句不用来定义变量
- 变量应定义在循环体外
练习5.20:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
string last_word, accur_word;
bool flag = false;
while (cin >> accur_word)
{
if (accur_word == last_word)
{
cout << accur_word << endl;
break;
}
else
{
last_word = accur_word;
flag = true;
}
}
if (!flag)
cout << "不连续重复" << endl;
return 0;
}
练习5.23:
#include<iostream>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
cout << "m/n:"<<m / n << endl;
return 0;
}
练习5.24:

练习5.25:
#include<iostream>
using namespace std;
int main()
{
int m, n;
while (cin >> m >> n)
{
try
{
if (n == 0)
throw runtime_error("除数不可为0");
cout << "m/n:" << m / n << endl;
}
catch (runtime_error err)
{
cout << err.what()
<< "\nTry Again? Enter Y or N" << endl;
char c;
cin >> c;
if (!cin||c == 'N')
break;
}
}
return 0;
}
《C++Primer》第五版习题答案--第五章【学习笔记】的更多相关文章
- 《C++Primer》第五版习题答案--第六章【学习笔记】
<C++Primer>第五版习题答案--第六章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/16 第六章:函数 ...
- 《C++Primer》第五版习题答案--第三章【学习笔记】
[C++Primer]第五版[学习笔记]习题解答第三章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/10 第三章:字符串,向量和数组 ...
- 《C++Primer》第五版习题解答--第四章【学习笔记】
[C++Primer]第五版习题解答--第四章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/11 第四章:表达式 练习4. ...
- 《C++Primer》第五版习题答案--第一章【学习笔记】
C++Primer第五版习题解答---第一章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2022/1/7 第一章:开始 练习1.3 #includ ...
- 《C++Primer》第五版习题答案--第二章【学习笔记】
C++Primer第五版习题解答---第二章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/9 第二章:变量和基本类型 练习2.1: 类 ...
- C++Primer第五版——习题答案目录
目前正在刷<C++Primer>这本书,会在博客上记录课后习题答案,答案仅供参考. 因为水平有限,如有有误之处,希望大家不吝指教,谢谢! 目录地址 使用的系统为:win 10,编译器:VS ...
- C++Primer第五版——习题答案详解(一)
习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第1章 开始&&第2章 变量和基本类型 练习1.3 #include&l ...
- C++Primer第五版——习题答案详解(二)
习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第3章 字符串.向量和数组 练习3.2 一次读入一整行 #include<iost ...
- C++Primer第五版——习题答案详解(三)
习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第4章 表达式 练习4.10 while(cin>>i&&i ...
随机推荐
- allegro使用经验总结(一)
在用allegro开发flappy bird.游戏虽然小,但是用到了allegro的方方面面,可以说是"麻雀虽小五脏俱全". 1.physfs 这是一个跨平台的读写文件的库,可以直 ...
- Hbase与Maven工程的Spring配置笔记
1.HBase基本操作 hbase shell: 连接到正在运行的HBase实例 help: 显示一些基本的使用信息以及命令示例. 需要注意的是: 表名, 行, 列都必须使用引号括起来 create ...
- BBOTSTRAP
Bootstrap 第一步:下载 第二步: 解压缩 第三步:引入(head内部 link引入) Bootstrap 全局样式 移动设备优先:<meta name="viewport& ...
- mysql--->innodb引擎什么时候表锁什么时候行锁?
mysql innodb引擎什么时候表锁什么时候行锁? InnoDB基于索引的行锁 InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁 ...
- linux 移动复制删除
linux下文件的复制.移动与删除命令为:cp,mv,rm一.文件复制命令cp 命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination) ...
- 017.Python函数匿名函数
匿名函数 lambda表达式 lambda表达式 : 用一句话来表达只具有返回值的函数,简单,方便,直截了当 # 语法: lambda 参数 : 返回值 无参数的lambda 表达式 def func ...
- 【阿里云IoT+YF3300】13.阿里云IoT Studio WEB监控界面构建
Web可视化开发是阿里云IoT Studio中比较重要的一个功能,通过可视化拖拽的方式,方便地将各种图表组件与设备相关的数据源关联,无需编程,即可将物联网平台上接入的设备数据可视化展现. 目前支持的组 ...
- Spring Boot 2.x基础教程:默认数据源Hikari的配置详解
通过上一节的学习,我们已经学会如何应用Spring中的JdbcTemplate来完成对MySQL的数据库读写操作.接下来通过本篇文章,重点说说在访问数据库过程中的一个重要概念:数据源(Data Sou ...
- webpack--运行npm run dev自动打开浏览器运行首页的两种方式以及热加载
作为开发人员,我们在修改了代码之后,在vscode终端运行npm run dev指令后,希望它可以自动打开浏览器方便我们调试,有两种方式可以实现: 自动打开浏览器的两种方式: 方式一: 1.webpa ...
- c++引用深入探讨
(偶然翻起自己的旧博,忽然发现大三的时候写的这篇文章,仔细看看觉得写的还是那么回事,所以赶紧搭救出来) 引用的声明: 基本格式:引用类型 &引用名=被引用对象 &运算符:声明运算符 ...