《程序设计实践》勘误表

现在看来本书还是有许多翻译缺陷,有许多值得改进的地方。
已发现的错误不多,重要的有如下几处:

25页两段程序之下:
    误“这里要查找的是字符数组下标的1/2。”
    正“这里要查找的是字符1/2在数组里的下标。”

    其中“1/2”是一个字符(在扩展ASC码中编码为171)
    说明:本句在我原来的翻译中就没有错,校对时也改过,但出版的书中始终没有改过来。
    我已再次要求出版社更正。
 

33页,2.6第2段第一句。改为:
    我们时常会遇到这种情况:需要维持一小批东西的踪迹,但它们的数目也可能变化。
    这时数组仍是一种可行选择。
 

74页,对函数csvnfield的说明:
      误:“返回由csvgetline最近读入的行的长度”,
      正:“返回由csvgetline最近读入的行中所包含的域的数目”
感谢www.china-pub.com中一位未具名的读者指出了这个错误。
 

在深圳的朋友彭健指出第16页“打印直方图”程序中的一个问题(原书的问题):
----------------------------
该程序的最后的三行

draw(MAXROW-1, MINCOL+1, ' ');  /* lable x axis */
for (i = 'A'; i <= 'Z'; i++)
    printf("%c  ", i);

打印x轴。这样写事实上假定了条形柱的宽度(即WIDTH的值)是3。如果WIDTH值不为3,
那么printf("%c  ", i)打印的字母与对应的条形柱不能对齐。最后三行可改为:

for (i = 'A'; i <= 'Z'; i++)
    draw(MAXROW-1, (i-'A'+1) * WIDTH, i);
----------------------------
此事我已通过email与B. Kernighan联系过,他认可这一意见。


本页由裘宗燕建立和维护,保留所有权利。

这里的材料可自由地用于个人学习或普通教学活动。其他方式的使用应事先得到作者书面认可。