C++教程第2版勘误:代码修正与优化详解
需积分: 4 19 浏览量
更新于2024-09-14
收藏 86KB DOC 举报
《C++程序设计教程第2版》第2次印刷的勘误主要包括几个关键部分的错误和建议。首先,在P50的例4.17程序中,作者发现了一个多余的语法细节:在输出语句中,`cout`的两个`setw(12)`之间的字符串`"f1"`和`"f2"`实际上是多余的,因为它们在接下来立即被变量`f1`和`f2`的值替换。正确的代码应删除这两个多余的双引号,使其简化为:
```cpp
void main() {
int f1, f2;
f1 = f2 = 1;
for (int i = 1; i <= 20; i++) {
cout << setw(12) << f1 << setw(12) << f2;
if (i % 2 == 0) cout << endl;
f1 = f1 + f2;
f2 = f2 + f1;
}
}
```
其次,在P94的例7.10的`prime`函数中,用于检查素数的部分有小误。原始代码中`for`循环的注释提到`a[0]`不是素数,但代码本身并未使用到它,所以可以从`a[1]`开始判断。修正后的代码删除了多余空行,保持简洁:
```cpp
void prime(int a[], int n) {
int i, j;
for (i = 1; i < n / 2; i++) // 从a[1]开始判断
if (a[i] != 0)
for (j = i + 1; j < n; j++)
if (a[j] != 0)
if (a[j] % a[i] == 0) a[j] = 0;
}
```
最后,在P107的例子中,有一段红色字体的描述应该调整位置,以便更好地引导读者理解。这部分描述原本放在代码示例之后,现在应该下移到“请读者比较这两个方法。”这一提示前面,以便于阅读和教学:
```cpp
例7.25 输入一行字符,统计其中的单词个数,单词之间用空格隔开。
本算法中,求单词数的方法为:顺序扫描数组元素,若当前字符是非空格,而其前一个字符是空格,则单词数加1。
#include<iostream.h>
#include<string.h>
int countWords(char string[]) {
int i, len, num = 0;
// ... (剩余代码)
```
这些勘误旨在帮助读者更好地理解和学习C++编程,确保了教材内容的准确性和一致性。通过改正这些问题,学生在实际操作时可以避免类似的错误,提升编程技能。
2023-08-28 上传
2011-11-04 上传
2011-07-22 上传
2010-05-08 上传
2011-10-06 上传
2014-05-03 上传
2010-08-20 上传
qqHund
- 粉丝: 0
- 资源: 1
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程