学生が作る、「カレーのレシピ」程度の数十行程度のプログラムでも、バグなしで作ろうとすると簡単ではありません。バグは、いろいろな場所にこっそり、あるいは、堂々と潜んでいます。どんなプログラムでも、バグを的確に見つける能力は非常に重要です。
今回は、学生が5分で記述できる電卓プログラムを問題としました。どこにバグがあるか考えてみてください。
問題文:リスト4は、電卓プログラムの仕様である。リスト5は、仕様を基にプログラムを記述したものである。下記の資料から、どのようなバグがあるか推察せよ。
コンソールから、数値を入力し、加減乗除するプログラムである。
コンソールから、整数型の数値in1、in2を入力し、加減乗除する。
コンソールから、2つの整数型の数値in1、in2を入力する。
コンソールから、どんな演算をするか、下記の整数型の数値で演算モードを入力する。
演算モードに従って、下記を実施し、結果を整数型でコンソールに出力する。
#include <stdio.h>
main()
{
int in1, in2;
int mode;
int result = 0;
printf("2つの数値を入力してください\n");
scanf("%d %d",&in1, &in2);
printf("演算モードの選択 1: 加算, 2: 減算, 3: 乗算, 4: 除算\n");
scanf("%d",&mode);
switch(mode){
case 1:
result = in1 + in2;
break;
case 2:
result = in1 - in2;
break;
case 3:
result = in1 * in2;
break;
case 4:
result = in1 / in2;
break;
default:
break;
}
printf("result = %d\n", result);
}
Copyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク
よく読まれている編集記者コラム