解決大問題的一種方法是把它分解成許多小問題理想情況下這些小問題可以很容
易地被解決然後再把它們合在一起就可以解決大問題了如果新分割的小問題解決起
來還是太大就把它分割得再小一些重複整個過程直到能夠解決每個小問題這個策略
就是分而治之divide and conquer 和逐步求精stepwise refinement
書店問題可以分解成四個子問題或任務:
1 讀銷售文件
2 根據書名和出版社計算銷售量
3 以出版社名稱對書名進行排序
4 輸出結果
我們知道怎樣解決第1 2 和4 個子問題因此它們不需要進一步分解但是第3 個子
問題解決起來還是有些大所以對這個子問題重複我們的做法繼續分解
3a 按出版社排序
3b 對每個出版社的書按書名排序
3c 在每個出版社的組中比較相鄰的書名如果兩者匹配增加第一個的數量刪除
第二個
作者的算法思想,一定要細細體會。
編譯C++程序時編譯器自動定義了一個預處理器名字__cplusplus
在編譯標準C 時編譯器將自動定義名字__STDC__
__LINE__記錄文件已經被編譯的行數
__FILE__包含正在被編譯的文件的名字
被編譯文件的編譯時間__TIME__ 和日期__DATE__
C中的斷言:
#include <assert.h>
assert( filename != 0 );