>>314
宿題の内容とは全く関係ないが、
common.inc.cをインクルードしてるのがちょっとな・・・
実行ファイル名がa.outなのもどうかと。

そろそろMakefile作ってソース構成まとめたほうがいいんでない?
(構成例)
 common.h :共通定義
 common.c :共通ソース
 codebook.c :コードブック作成処理
 encode.c :エンコード処理
 decode.c :デコード処理
 Makefile :以下の実行形式ファイルを生成
       → codebook(コードブック作成)
       → encode(エンコード)
       → decode(デコード)

この辺は人それぞれだから、別に強制するわけではないけどね。