C言語で数値を自由自在に表示するその方法とは…?
文字列を表示できるようになったら、次は何をしたらいいの…?
前回の記事で『printf関数で文字列を表示する方法』をマスターすることができました。

でも、文字以外にも表示させたいものってありますよね…?
そこで、本記事では文字列の表示をマスターした『あなた』のために、printf関数で数値を表示する方法を解説しています。
ぜひ参考にしてみてください!
気になるところへGO!
printf関数で数値を表示する基本的なやり方

C言語のprintf関数で数値を表示させる基本的なやり方は次の通りです。
printf(“%d¥n”, 数値);
この方法であれば、『%d』と書いたところに『整数』を表示させることができます。
実際にこのやり方を取り入れたプログラムで、数値を表示させてみましょう。
次のプログラムを実行してみると、画面に『10円』と表示されるはずです。
#include<stdio.h>
int main(void){
printf("%d円\n",10);
return 0;
}
printf関数は『”』で囲まれた文字を画面に表示させる関数でしたよね。
なので、さっきのプログラムであれば『%d円』と表示するような気がするのですが、実際には『10円』と表示されています。
つまり、『%d』の部分に『,』の後に書いた数値を代入して表示できることが分かります。
複数の数値を表示させる方法

では、複数個の数値を表示するプログラムの例をみていきましょう。
次のプログラムを実行するとどうなるのでしょうか…?
#include<stdio.h>
int main(void){
printf("%d+%d=%d\n",1,2,1+2);
return 0;
}
このプログラムを実行すると『1+2=3』と表示されます。
先ほどのprintf関数のカッコの中に注目してください。
このプログラムでは『”』で囲まれた部分に3つの『%d』が使われています。
つまり、このプログラムは3つの数値を表示させるものなのです。
すでにお分かりかもしれませんが、表示した3つの数値はprintf関数の『,』以降に書かれています。
今回は%dが3つあるので『,』で区切りながら3つの数値を書いていくのです。
そうすれば数値を書いた順番どおりに左の『%d』から代入していくことができます。
表示させる数値を変更する方法

先ほどご紹介した方法が『C言語で数値を表示させる基本的なやり方』です。
ですが、このままだといつも同じ数値を表示させることしかできません。
さっきのプログラムであれば『1+2=3』しか表示できないんです。
これじゃあ、ちょっと使いにくいですよね。
表示させる数値を変えるためには『変数』を使います。
変数とは『データを保存する箱』のようなもので、文字や数値の保存によく使われるものです。

では『int型(整数)の変数i』を使って、画面に数値を表示させるプログラムを確認してみましょう。
具体的には次のようなプログラムを書けばOKです。
#include<stdio.h>
int main(void){
int i = 100;
printf("%d円\n",i);
return 0;
}
このプログラムを実行すると『100円』と表示されると思います。
つまり、『%d』の部分に『変数iに保存した数値』を代入して表示しているのです。
このことから、これまでと全く同じ方法で『変数に保存した数値』を表示させることができると言えます。
変数を使うときの注意点

臨機応変に数値を表示させたい場合、変数を使えばいいことがわかりました。
でも、変数を使う際に注意しなければいけないポイントがあるんです。
変換指定子とは、これまで使ってきた『%d』のことです。
実はこの『%d』って、整数しか表示できないんですよ。
小数などを表示させようとするとバグってしまうんです。
ためしに『%d』で実数を表示させてみましょう。
#include<stdio.h>
int main(void){
double x = 3.14;
printf("%d\n", x);
return 0;
}
このプログラムのように実数を%dで表示しようとすると、コンパイルできなかったりデタラメな数値が表示されたりします。
その理由は『%d』では実数を表示することができないからです。
実数を表示させるためには『%f』という変換指定子を使う必要があるんですよ。
つまり、printf関数で数値を表示させるためには、数値の種類に対応した変換指定子を使う必要があるのです。
記号 | 表示内容 | 型 |
%d | 整数(10進数) | int・short・long |
%o | 整数(8進数) | |
%x(X) | 整数(16進数) | |
%f | 実数 | float・double |
表示する桁数を変更する方法

最後は表示する桁数やレイアウトを変更する方法をご紹介します。
まずは整数を表示する次のプログラムをご覧ください。
#include<stdio.h>
int main(void){
printf("①:%d\n",123);
printf("②:%5d\n",123);
printf("③:%05d\n",123);
return 0;
}
こちらを実行すると次のような結果になります。
実行結果
①:123
②: 123
③:00123
実は%dなどの変換指定子の間に数値を書くと、レイアウトを整えることができます。
①はこれまで使ってきたデフォルトの表示方法なので、先頭から整数が表示されていますよね。
しかし、②と③はどうでしょうか?
②と③のケースでは『%d』の間に『5』が入力されています。
このようなコードを書くと、5桁の表示ができるのです。
つまり、『%d』の間に入力した数値の分だけ表示スペースを確保することができます。
先ほどのプログラムを思い出してください。
表示したい数値は『123』なので表示したい数値は3桁、『%5d』なので確保したスペースは5桁分ということが分かります。
今回は『表示したい数値の桁』≤『確保した表示スペース』なので、1の位にあわせて数値を表示してくれるのです。
なお、『表示したい数値の桁』が『確保した表示スペース』より大きい場合は、①と同じ結果になります。
③の方法は『%』の直後に『0+数値』を記入する方法です。
結果は②に近い結果になりますが、空いている表示スペースに0が表示されるようになります。
#include<stdio.h>
int main(void){
printf("④:%f\n",3.14);
printf("⑤:%5.2f\n",3.14);
printf("⑥:%05.2f\n",3.14);
return 0;
}
このプログラムを実行すると次のような結果になります。
実行結果
④:3.140000
⑤: 3.14
⑥:03.14
④は基本的な実数の表示方法です。
小数点以下第6位まで表示してくれることが分かります。
続いては%fの間に数値を記入した⑤です。
実数の場合、小数点があるので次のような表記方法になります。
『%』+『小数点を含む桁数』+『.』+『小数点以下の桁数』+『f』
つまり、例のような『%6.2f』の場合は小数点を含む6桁分の表示スペースを確保して、小数点以下第2位まで表示することになるのです。
⑥は整数の場合と同様に、空いている表示スペースに0を表示してくれます。
まとめ
以上がC言語で数値を表示させる方法になります。
変換指定子は『整数なら%d』『実数なら%f』と覚えてしまうと良いでしょう。
後はレイアウトを変更できる方法を少し覚えておけば、数値の表示はマスターしたいっても過言ではないと思いますよ!

