では、「&&」や「||」を使った問題を出していきましょう。
新しく考えるのではなく、以前に出した問題を改良する方法をとります。
まずは、BMIのプログラムを思い出してください。
BMIとは「ボディ・マス・インデックス指数」のことですよね。
以前は、ネットで計算式を探してくださいといいましたが、今度は結果の表示についてです。
BMI判定は、計算結果によって変化します。
BMI判定は25.0以上は肥満。 18.5以上25未満は正常域。 18.5未満はやせの判定となります。
これをプログラムで表示させたいと思います。
実行結果は、下記のようにしたいと思います。
<実行結果1>
あなたの体重(kg)を入力してください:90 あなたの身長(m)を入力してください:1.6 あなたのBMIは35.156250です。 判定:肥満 続行するには何かキーを押してください・・・
<実行結果2>
あなたの体重(kg)を入力してください:65 あなたの身長(m)を入力してください:1.7 あなたのBMIは22.491349です。 判定:正常 続行するには何かキーを押してください・・・
<実行結果3>
あなたの体重(kg)を入力してください:50 あなたの身長(m)を入力してください:1.7 あなたのBMIは17.301038です。 判定:痩せ 続行するには何かキーを押してください・・・
考えてみてください。
解答例です。
<sample program 016-01>
#include <stdio.h> int main(void) { double weight; double height; double bmi; printf("あなたの体重(kg)を入力してください:"); scanf("%lf", &weight); printf("あなたの身長(m)を入力してください:"); scanf("%lf", &height); bmi = weight / height / height; printf("あなたのBMIは%fです。\n", bmi); if (bmi >= 25.0) { printf("判定:肥満\n"); } else { if (bmi >= 18.5 && bmi < 25.0) { printf("判定:正常\n"); } else { printf("判定:痩せ\n"); } } return 0; } |
<実行結果1>
あなたの体重(kg)を入力してください:90 あなたの身長(m)を入力してください:1.6 あなたのBMIは35.156250です。 判定:肥満 続行するには何かキーを押してください・・・
<実行結果2>
あなたの体重(kg)を入力してください:65 あなたの身長(m)を入力してください:1.7 あなたのBMIは22.491349です。 判定:正常 続行するには何かキーを押してください・・・
<実行結果3>
あなたの体重(kg)を入力してください:50 あなたの身長(m)を入力してください:1.7 あなたのBMIは17.301038です。 判定:痩せ 続行するには何かキーを押してください・・・
ポイントは、「18.5以上25未満は正常域」で「&&」を使うことです。
もう1つ問題を出しましょう。
うるう年のプログラムを「&&」や「||」を使って作り直してみてください。
ヒントは、「4で割り切れて、「しかも」100で割り切れない「または」400で割り切れる・・・です。
解答例です。
<sample program 016-02>
#include <stdio.h> int main(void) { int year; printf("西暦を入力してください:"); scanf("%d", &year); if ((year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0) { printf("%d年はうるう年です。\n", year); } return 0; } |
<実行結果1>
西暦を入力してください:2006 続行するには何かキーを押してください・・・
<実行結果2>
西暦を入力してください:2004 2004年はうるう年です。 続行するには何かキーを押してください・・・
<実行結果3>
西暦を入力してください:2000 2000年はうるう年です。 続行するには何かキーを押してください・・・
<実行結果4>
西暦を入力してください:1900 続行するには何かキーを押してください・・・
(year % 4) 等についている「( )」は無くても大丈夫だと思います。
ここまで使いこなせれば、問題ないでしょう。
これまでに「ネスト」で処理していた問題についても、「&&」や「||」で書き換えることが出来ないかどうか、検討してみてください。
次は、「条件の否定」ついて書きます。