今回は、そのFizzBuzz問題を取り上げます。実装したソースコードにバグを埋め込んであります。FizzBuzz問題が本当に都市伝説なのか自分でチェックしつつ、デバッグ能力を鍛えていただければ幸いです。仕様から出力結果を予想し、どこにバグがあるか推察してください。
5分考えても分からない場合、「プログラミングの素養があれば5分以内でFizzBuzz問題がコーディングできるはず」という「根拠はないが漠然とした説得力の漂う見解」は、占星術のお告げと同じレベルであると考え、効率的かつ実践的にバグを見つけるため、自分の環境で実行するといいでしょう。
ソースコードを見てバグを検出できなければ、力まかせに実行することも有効です。いろいろな方向に弾を撃ちましょう。実行すると、整合性に欠ける部分が見つかるはずです。なお、本シリーズのプログラムは、全て「Visual Studio2010」のコンソールアプリケーションで実行を確認したものを使用しています。
以下の条件に従い、1〜100までの数をコンソールに表示せよ
#include <stdio.h>
int main(void)
{
	int i;
	for (i = 1; i <= 100; i++) {
		if ( ((i % 3) == 0) && ((i % 5) == 0)){
			printf("FizzBuzz\n");
		} else if ((i % 3) == 0) {
			printf("Buzz\n");
		} else if ((i % 5) == 0) {
			printf("Fizz\n");
		} else {
			printf("%d\n",i);
		}
	}
}
Copyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク