刚看完第一章,虽然算不上较差,但原书作者那么牛逼,习题解答写成这样多少有点差强人意。
简单的程序写得还可以,越复杂的程序写得越一团糟。
第一章
1-13 切分单词只使用了空格制表和换行,于是数字标点都算到单词里了——显然应该使用ctype.h头文件里的isalpha做判断;另外水平直方图还记得刻度太小标为1,垂直直方图就没这个逻辑了。
1-18 remove函数和stdio.h里的库函数重名,得改名
1-22 选用先存储再倒退查找空格的方式,若需要折行还要重新赋值调整数组,效率会很差
1-23 按照书中所写,只能用于正确的C程序,倘若有错,如注释、引号未闭合,程序无法退出,因为大量的getchar()调用都没有检查返回值为EOF的情况。
1-24 三个主要问题:1.未检查a //*(*/ b这种情况,会将注释中的(算进去从而出错——奇怪的是1-23明明考虑到了这个case,怀疑代码是不是一个人写的;2.只检查了数目,没检查顺序,换句话说([{)]}这种顺序显然是错误,但书中程序查不出来;3.与1-23类似原因,只能检查正确的代码。一个用来纠错的程序只能用于正确的代码,有点讽刺。