a = 6, b = 5 のとき,次の各計算結果を表示するプログラムを作成せよ.
a + b
a − b
a × b
a ÷ b
a ÷ b のあまり
底辺が a, 高さ b の三角形の面積
a2 + ab
解答例:
#include <stdio.h> void main() { int a, b; a = 6; b = 5; printf("a = %d\nb = %d\n", a, b); printf("a + b = %d\n", a+b); printf("a - b = %d\n", a-b); printf("a X b = %d\n", a*b); printf("a / b = %d\n", a/b); printf("a %% b = %d\n", a%b); printf("底辺a,高さbの三角形の面積 = %d\n", a*b/2); printf("a^2 + ab = %d\n", (a+b)*a); }
結果:
a = 6 b = 5 a + b = 11 a - b = 1 a X b = 30 a / b = 1 a % b = 1 底辺a,高さbの三角形の面積 = 15 a^2 + ab = 66
あれ,結果が思い通りになりませんね.
わり算の結果(商)は,実数になるはずなので,
printf("a / b = %f\n", a/b);
としてみましょう.さあ,どうでしょう?
a / b = 0.000000
ますますおかしくなりましたね.これは,同じ型同士で演算をすると結果も同じ型になるからです.
上の例だと,
[整数]=[整数]÷[整数]
となるため,商が正しく求まりません.そこで,別の実数の変数を用意して,
[実数]=[整数]÷[整数]
となるように,書き換えてみましょう.
#include <stdio.h> void main() { int a, b; float c; a = 6; b = 5; c = a / b; printf("a / b = %f\n", c); }
結果:
a / b = 1.000000
まだ,おかしいですね.
わり算をうまく行うには,
[実数]=[実数]÷[実数]
としなくてはなりません.そこで,整数から実数に変数の型を 変換 する必要があります.型を変換する演算子を キャスト演算子 と呼びます.
#include <stdio.h> void main() { int a, b; float c; a = 6; b = 5; c = (float)a / (float)b; printf("a / b = %f\n", c); }
結果:
a / b = 1.200000
やっと,意図した結果が得られました.
このように,計算の途中で型が思い通りにならないことが多く出てきます.気をつけてプログラムを作りましょう.
これまで,プログラム内で扱う値は,あらかじめプログラムに記述してあるものしか,扱えませんでした.
上のプログラムで,変数aや変数bに,値を後から設定できるようにしましょう.キーボードからデータを入力するには scanf()関数を用います.
scanf() 関数は,printf() 関数によく似ていますが,変数の前に必ず & をつけます.この記号の意味は後期に説明します.
キーボードから入力した値を表示するプログラム:
#include <stdio.h> void main() { int a; float b; printf("a = "); scanf("%d", &a); printf("b = "); scanf("%f", &b); printf("a = %d\n", a); printf("b = %f\n", b); }
先週作成したプログラムにおいて,変数a, b をキーボードから入力して計算するように変更してみよう.
肥満度を表す指標にBMIというものがあります.これは1999年にWHOで基準が発表されていますが,18.5から25までが正常範囲とされています.
BMI=体重(kg)÷身長(m)^2
キーボードから体重と身長を入力すると,BMI値を計算して画面に表示するプログラムを作成せよ.
参考:
BMI | 判定 |
18.5未満 | やせ |
18.5〜25 | 普通 |
25〜30 | 肥満1 |
30〜35 | 肥満2 |
35〜40 | 肥満3 |
40以上 | 肥満4 |