
どうもピーマンです!
今回は、中学校で習った "x" や "y"の様な、数字を自由に、代入することのできる特殊な数字変数について、詳しく説明していきます。
変数とは?
まずは、データ型や、変数とはなにかを簡単に説明します。
データ型について

上記の記事で、printf関数をを説明した時に、エスケープシーケンスというものを紹介したと思います。%dは整数で、%sは文字列でしたね!
c言語では、この様に、数字と文字、少数などが明確に区分されており、それぞれを使用する時に、しっかりと揃えないとおかしなことになってしまいます。
間違っているデータ型の例として以下のソースコードを紹介します。また間違えている部分はソースコード中にコメントアウトしてあります。ちなみに、このコードはコンパイルできません。
これから、変数を使用するにあたって、データ型は使用するので、しっかり覚えておきましょう。
変数とは?
変数とは、箱やバケツの様なもので、数字や、文字などを、格納しておくことができます。中学校で習ったxやyみたいな感じですね。
次に、変数によってどんなことができる様になるのかを見ていきましょう。
- キーボードから入力した値をprintfで計算に使うことができる。
- 足し算や引き算などを変数と組み合わせ複雑な式を解くことができる様になる
- ゲームで例えると、HPやMPなど変化する値を変数で開発できる。
この様に、変数はを使うことにより、できることがとても広がります。
変数の使い方
それでは、変数の具体的な 使い方を説明していきます。文字で説明されてもわかりにくいと思うので、とりあえず以下のソースコードをコンパイルした後に実行してみましょう。
出力結果は、以下の様になると思います。
a=5 b=a c=3.14
それでは、つぎにこのソースコードを実行した時に、何が起こったのか見ていきましょう。はじめに、int a; という部分に関してです。
このint aという部分は、「このプログラムではこんなデータ型の変数を使います!」という宣言を表していて、intというのは、整数型という意味を表しています。aというのは、変数の名前です。
つまり、c言語では変数を使用したい時に、以下の様に、宣言する必要があります。
変数のデータ型 変数の名前;
この場合は、整数型のaという変数を使用するために、整数型を表すためのint型というデータ型を使用しました。変数bに注目してみると、charというデータ型で、bを宣言しています。
このcharというのは、文字型を表しており、数字ではなく文字を格納することができます。
他にはintやchar以外に、変数のデータ型は以下の様なものがあります。
char | 文字型 |
int | 整数型 |
float | 小数点型 |
double | 高機能の小数点型 |
cという変数は、小数を代入するための小数点型の変数だということがわかりましたね!
また、ソースコードの実行結果より、
printf("%d", a);//整数型の変数を代入 printf("%c", b);//文字型の変数を代入 printf("%f", c);//小数型の変数を代入
という使い方ができることがわかります。
四則演算をしてみよう
次に、足し算、引き算、掛け算、割り算の方法を説明していきます。
四則演算の方法
c言語では、足し算引き算は、そのまま+や-の記号を使用しますが、掛け算や割り算は、皆さんの知っている記号とは、少し違いますので、以下の表を見てみましょう。
種類 | 演算子 | 例 | 意味 |
足し算 | + | a + b | a足すb |
引き算 | - | a - b | a引くb |
掛け算 | * | a * b | a掛けるb |
割り算 | / | a / b | a割るb |
余り | % | a % b | a割るbの余り |
また、a + b * c というときは、数学と同じルールが適用され、掛け算から計算されます。
変数を使った四則演算
それでは、先ほど学習した、変数と四則演算を、実際に使っていきましょう!いつものように、言葉で説明するより、手を動かした方が習得しやすいので、以下のc言語のコードをコンパイルして、実行してください。
このc言語のコードは、肥満度BMIを求めるプログラムです。
BMIとは、体重÷(身長m×身長m)で求めることのできる肥満指数で、ちょうどいい例になるので、解説したいと思います。
- まず、はじめに体重と身長とBMIを代入する変数を宣言しましょう。このときに注意するのは、BMIは小数の値なので、変数は小数点数floatで宣言しなければなりません。
- 次に、体重と身長に値を代入します。身長は[m]で計算しなければならないので100で割ったものを代入します。
- 次に、メインの計算をします。(身長m×身長m)を先に計算するので、()で括ります。
- 最後に、計算した値を表示するためにprintf関数を使用します。気を付けなければならないのが、BMIは小数を含むので、エスケープシーケンスは%fだというところです。
このc言語のプログラムをコンパイルし、実行したところ以下の様になります。
BMIを求めます。 BMIは 17.301037 です。
キーボードから文字を入力!
変数が使える様になっても、キーボードから数字を入力できないと変数を使いこなすことができません。そこで、次にキーボードから変数に数字を代入する方法を説明していきます。
文字を入力してみよう
まずは、以下のc言語のプログラムをコンパイルして、実行して見ましょう。オンラインコンパイラを使っている方は、もう一度、入力時の使い方を確認しましょう。
今までとは違い、キーボードから入力を求められると思います。例えば誕生月が5月だった場合、5と入力し、エンターを押しましょう。以下の結果が出力されるはずです。
あなたは、5月生まれです。
ここで、ソースコード中に新しく出てきた機能を紹介します。それが以下の関数です
scanf("%dエスケープシーケンス", &変数名);
ソースコードの中では8行目に実装しており、このscanf関数を使用すると、変数に数字や文字などをキーボードから入力し、代入することができます。
printf関数ととても似ていますが違う点が一点あり、, &変数名 という様に、変数名の前に&を書き加える必要があります。とても忘れやすいので、気をつけましょう。
その他の例として、以下のc言語のソースコードもコンパイルして実行しましょう。
このc言語のコードでは、scanf関数の中に2つのエスケープシーケンスを挿入しており、スペース区切りでキーボードから入力することにより、1度に2つの値を入力することができます。
scanf関数を活用してみよう
ここまでお疲れ様です!ここまで到達したという方はかなりの力がついてきたのではないでしょうか(笑)。最後に、ここでこの記事で学んだことを全て組み合わせてコードを書いてみましょう。
書くプログラムは、「体重と身長をキーボードから入力して、BMIを出力する」というプログラムにします。
記事の上にあるコードに入力機能を書き足すだけなので頑張ってください!。書き足すのは、以下の機能です。
- 小数型の数字をキーボードからscanfで変数に代入
回答も載せておきますが、できるだけ見ないで頑張って見てください。
回答
まとめ
少しずつ難易度は高くなっていますが、もし、できないところがあっても諦めずに、落ち着いてからなんどもチャレンジして見ましょう。
