C言語のプログラムでバグのある時は、以下の手順で直してゆく。
例えば、計算した結果を出力するプログラムで、 出てくる数値が間違っているときは、 まず、どこがおかしいかを発見して、それから原因を突き止めるようにする。
じっとプログラムを眺めていても、なかなかバグは見つからない。
バグを取る時は目を動かすより、手を動かそう。
まず怪しいところにprintf()を入れる。
適当なところにprintf()を入れて、変数の値を確かめると、どこがおかしいのかを突き止めらる。
手計算をしてみた値と、printf()で出した値が、違わないかどうかを一つ一つ確かめてゆく。
例えばプログラムの中に
z = x * y ; /* x, y, z はdouble */
という部分があって、どうもzの値がおかしいと見当をつけたら、
この場合、zを計算するためにxとyを使っているわけだから、
printf("%lf %lf\n",x,y);
をこの式の前か後ろに付け加えて、コンパイルし直して実行し、
値が正しいかどうかを確かめる。
その時、入力データをなるべく簡単なものにした方が、わかりやすくなる。
バグの場所がわかったら、次に原因を考える。
原因がわかったら、正しく書き直して、もう一度コンパイルして実行をやり直す。
それでもバグのある場合は、もう一度最初からやり直す。