学习《C++程序设计教程》第7章 数组

差不多有2个星期没有看《C++程序设计教程》了。上次学到了第七章数组应用那部分,然后就陷入了忙碌的工作和对将来的烦躁中。这个星期,总算续接前文,学习完,并完成了后面的习题。

数组这个东西还算熟悉,感觉比较困难的是数组应用那一部分:冒泡排序,插入排序,快速排序,Josephus问题。我细细看了几遍才能弄懂,但是这几个例子写得太精妙,即使我弄懂了,要我合上书写出来,我也写不出来。这些算法只能作为手上的资料做参考。

7.8 矩阵乘法的三重循环比较雷人,刚开始我也晕了头。如果我还记得大学学的矩阵乘法原理,大概会好懂些。

 

习题1的答案用返回下标的方式获得相应的数组值,这个方法挺好。

习题3的要求好像跟Josephus问题很相似,我想就改Josephus问题的几个值就行了。后来看了答案,发现答案没有沿用之前Josephus问题问题中的代码,而且有一个for循环,写得特别复杂,看得我一愣一愣的。

“for(int j=1; !(a[i]&&(j++==interval)); i=(i+1)%num);  //数数”

习题4我有个一个简单的做法,就是设置一个状态参数。看了答案,也有状态参数,但是那个while循环看不懂。

习题5要留意n是奇数/偶数的情况。我考虑少了。

 

做习题的时候发现,编码完了后编译联编往往会出问题,处理的过程就是经验积累的过程。还是要多编码啊!这些经验以后会有用的。

我常常忘记写if判断条件的括号。还常常把数组定义成const。

 

看书的时候发现,局部数组在VC6.0上即使不定义,也是默认为0。这和书本说得不一样。大概编者用的是BC,与VC不一样?但是局部变量如果不定义为0,VC就不会把它设为0。

 

接下来看第8章 指针。

你可能感兴趣的:(C++,c,工作,算法)