直接的な解決法を示すわけではないので申し訳ないのですが、Visual Studio のデバッガの使い方を紹介しておきます。
(もし 無能プログラマ9さんが使っている開発環境が Visual Studio でなければごめんなさい)
最初にマスターしたいVisual Studioのデバッグ機能 - 基本編
http://news.mynavi.jp/articles/2008/08/18/debug/
(掲載されているものは Visual C# 2008 Express ですが、少なくともこれ以降にリリースされたものであれば、C++やC#などの言語を問わず同じように操作できます。)
まずは、ブレークポイントとステップインを使ってどのように処理が行われているのか、1行ずつ追って行ってみてください。
おそらく、無能プログラマ9さんが予想していないプログラムの処理が行われていることに気づいてもらえると思います。