MMGamesロゴ  MMGames
Twitterシェアボタン  Facebookシェアボタン   
 English 

しんで覚えるC言語
しんで覚えるC言語

数値の桁揃え

整数の桁そろえ
これまでも頻繁に使用してきたprintf関数ですが、まだ説明していない機能があります。
printf関数は、表示する文字や数値の桁数を指定できます。

次のプログラムはこれまでのように、桁数の指定などはなく、そのまま表示した例です。

ソースコード
#include <stdio.h>

int main(void)
{
    int a = 10000, b = 500, c = 3;

    printf("Aは %d です。\n", a);
    printf("Bは %d です。\n", b);
    printf("Cは %d です。\n", c);

    return 0;
}

このプログラムの実行結果は次の通りになります。

実行結果
Aは 10000 です。
Bは 500 です。
Cは 3 です。

結果を見てもわかる通り、数字はそのまま表示されており、
他の数字との位置関係がズレてしまっています。
もっと桁数の多い数字をいくつも表示する場合は非常に読みにくくなります。

結果の表示を読みやすくするために、数値の先頭に空白を入れて、数値の末尾で揃えて表示しましょう。
printf関数で、数値の末尾で揃えて表示するには、次のようにします。

数値の末尾で揃えて表示
%桁数d

出力変換指定子の間に数字を付けると、その桁数になるよう空白をいれて表示します。
次のプログラムは、桁数を5桁に指定して読みやすくした例です。

ソースコード
#include <stdio.h>

int main(void)
{
    int a = 10000, b = 500, c = 3;

    printf("Aは %5d です。¥n", a);
    printf("Bは %5d です。¥n", b);
    printf("Cは %5d です。¥n", c);

    return 0;
}

このプログラムの実行結果は次の通りになります。

実行結果
Aは 10000 です。
Bは  500 です。
Cは   3 です。

結果を見るとわかりますが、桁数に合わせて空白がいれられて読みやすくなっています。
なお、指定した桁数よりも数値の桁数の方が大きい場合には、数値の桁数に合わせます。

したがって、予想される最大の桁数を指定しておけば、必ず桁がそろえられて表示されます。
また、マイナス値を表示すると、-記号も1桁として取り扱われるので、
マイナスの値を表示する可能性がある場合は1桁大きく指定しておきます。
コンピュータ的な表示
printf関数では、コンピュータでよく見かける、0を使った表示も可能です。
桁数の前に0を付けると、空白の代わりに0を付けて表示するようになります。
次のプログラムは、先頭に0を付けるように変更した例です。

ソースコード
#include <stdio.h>

int main(void)
{
    int a = 10000, b = 500, c = 3;

    printf("Aは %05d です。\n", a);
    printf("Bは %05d です。\n", b);
    printf("Cは %05d です。\n", c);

    return 0;
}

このプログラムの実行結果は次の通りになります。

実行結果
Aは 10000 です。
Bは 00500 です。
Cは 00003 です。

なんとなく、コンピュータっぽい表示になっている気がします。
実数の桁そろえ
実数値の表示では、全体の桁数と共に小数点以下の桁数を指定できます。

実数値の桁揃え
%全体桁数.小数桁数f

ここで注意すべきことは、全体桁数は小数の桁数と小数点を含むことです。
たとえば、%6.2f では、整数部分が3桁、小数点が1桁、小数部分が2桁の6桁と解釈されます。

次のプログラムは、実数値を桁指定で表示する例です。

ソースコード
#include <stdio.h>

int main(void)
{
    double pi = 3.14159;
    printf("%6.2f\n",pi);
    printf("123456\n");
    
    return 0;
}

このプログラムの実行結果は次の通りになります。

実行結果
3.14
123456

下の行は桁数を見やすくするために付けたものです。
全体が6桁、小数点が1桁、小数部分が2桁で表示されていることがわかります。
なお、小数点以下の桁数を0にすれば、小数点も表示されません。

他にもいろいろな指定をできます。
詳しくは 単語と記号 の出力変換指定子を参照してください。


本サイトについて

苦しんで覚えるC言語(苦C)は
C言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。

第0部:プログラム概要編
  1. プログラムとは何か?
2章:プログラムの書き方
  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2
3章:画面への表示
  1. 文字列の表示
  2. 改行文字
  3. 練習問題3
6章:キーボードからの入力
  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6
9章:回数が決まっている繰り返し
  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9
10章:回数がわからない繰り返し
  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10
13章:複数の変数を一括して扱う
  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13
20章:複数のソースファイル
  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20

コメント
COMMENT

💬 コメント投稿欄を開く