C言語のきほん|printfの%dを使ってみよう

数字も表示できると、C言語はもっと楽しい。printfの%dで「文字+数値」の基本を身につけよう。

ここまでで、printf を使って文字だけを表示するプログラムは書けるようになってきましたね。
次のステップでは、文字だけではなく、数値もいっしょに表示する方法を覚えていきます。

C言語では、printf の中で %d を使うと、あとから指定した整数を文章の中に埋め込んで表示できます。
この書き方を覚えると、ただ文章を表示するだけでなく、年齢、回数、点数、個数など、いろいろな情報を扱えるようになります。

このパートでは、次のことをしっかり押さえていきます。

  • %d の基本的な使い方
  • printf の文字列と数値の関係
  • 数字を変更したときに表示結果がどう変わるか
  • %d に直接数値を書く方法
  • %d に簡単な計算結果を渡す方法
  • 練習問題の作り方と考え方

最初は、%d が少し不思議に見えるかもしれません。
でも、使い方はとてもシンプルです。まずは「文字列の中の差し込み位置」として覚えて、実際に何回か書いて慣れていきましょう。

printfの%d って何をしているの?

まず、いちばん大事なところからです。
%d は、printf の中で使う 整数を表示するための場所 です。

たとえば、次のように書くとします。

printf("%d個のりんごがあります。\n", 5);

このとき、%d のところに 5 が入って表示されます。

実行結果

5個のりんごがあります。

つまり、%d は「ここに整数を入れて表示してね」という目印です。

%dの基本ルールをやさしく整理

printf で %d を使うときは、次の形を覚えると分かりやすいです。

基本の形

printf("文字列の中に%dを書く\n", 整数);

ルール(基本)

項目内容
%d整数を表示する場所
カンマの右側%d に入れる値を書く
値の個数%d の数と合わせるのが基本

たとえばこんな対応になる

コード表示結果
printf("%d回目です\n", 1);1回目です
printf("%d回目です\n", 10);10回目です
printf("あと%d分です\n", 30);あと30分です

このように、文章は同じでも、数字だけ変えて表示内容を変えられるのが便利なポイントです。

サンプルプログラム

「勉強計画メッセージ」を表示するシンプルなプログラム例です。

ファイル名:3_6_1.c

// 勉強計画を表示するプログラム(その2)
#include <stdio.h>

int main(void)
{
    printf("こんにちは。C言語の学習計画を表示します。\n");
    printf("今日は%dページ進める予定です。\n", 8);
    printf("演習問題を%d問解くつもりです。\n", 3);
    printf("まずは%d分だけ集中して取り組みます。\n", 25);

    return 0;
}

実行結果例

このプログラムを実行すると、次のように表示されます。

こんにちは。C言語の学習計画を表示します。
今日は8ページ進める予定です。
演習問題を3問解くつもりです。
まずは25分だけ集中して取り組みます。

%d の位置に、後ろで指定した 8、3、25 が入っているのが確認できますね。

1行ずつ見ながら%dの仕組みに慣れよう

ここでは、変更版サンプルを使って、%d の見方を1行ずつ整理しておきます。

1行目(文字だけの表示)

printf("こんにちは。C言語の学習計画を表示します。\n");

この行は、これまで通り「文字列だけ」を表示しています。
%d は使っていません。

2行目(%dで整数を埋め込む)

printf("今日は%dページ進める予定です。\n", 8);

ここでは、文字列の中に %d があります。
その後ろにある 8 が %d の場所に入って表示されます。

3行目(同じ形で別の数値)

printf("演習問題を%d問解くつもりです。\n", 3);

書き方は同じで、数字だけが変わっています。
こういう使い方ができるので、printf はとても便利です。

4行目(2桁の数値もそのまま入る)

printf("まずは%d分だけ集中して取り組みます。\n", 25);

2桁でも3桁でも、整数なら %d で表示できます。

%dを使うと何が便利なの?

文字列の中に数字を直接書いてしまうこともできますが、%d を使うと「数値の部分だけ変更しやすい」というメリットがあります。

直接書く場合(変更しづらい)

printf("今日は8ページ進める予定です。\n");

この場合、数字を変えるには文字列そのものを書き換える必要があります。

%dを使う場合(変更しやすい)

printf("今日は%dページ進める予定です。\n", 8);

この場合、文章はそのままで、右側の数字だけ変えればOKです。

比較表

書き方特徴
文字列に数字を直接書く簡単だが、数字だけ変えたいときに不便
%dを使う数字だけ差し替えやすく、今後の学習にもつながる

この先、変数を使うようになると、%d の便利さがさらによく分かるようになります。
今はまず「数字を差し込める書き方」として慣れておけば大丈夫です。

%dでよくあるミス

%d は便利ですが、最初のうちはいくつかミスしやすいポイントがあります。
先に知っておくと安心です。

カンマの後ろの数値を書き忘れる

例(ミス)

printf("今日は%dページ進める予定です。\n");

%d があるのに、後ろの数値がありません。
これだとエラーや不正な動作の原因になります。

正しくはこう書く

printf("今日は%dページ進める予定です。\n", 8);

セミコロンを忘れる

例(ミス)

printf("演習問題を%d問解くつもりです。\n", 3)

行末の ; がないので、コンパイルエラーになります。

%dの個数と数値の個数が合っていない

最初は1つの %d から始めるのであまり起きませんが、今後増えてくるとここも大事になります。

例(ミス)

printf("%d年%d月です\n", 2026);

%d が2つあるのに、数値が1つしかないので問題になります。

今はまず、%d が1つなら、カンマの後ろに整数を1つ と覚えておけばOKです。

%dには計算式も書ける

%d に埋め込むのは数字そのものだけではありません。
簡単な計算式も書けます。

例(計算式)

printf("今日は%dページ進める予定です。\n", 5 + 3);

実行結果

今日は8ページ進める予定です。

このように、計算結果が %d の場所に入ります。

ここでのポイント

  • %d には整数を書ける
  • 整数の計算結果も使える
  • 今後の演算子の学習につながる

演算子は後の章でしっかり学びます。
今は「%d に計算を書いてもよいんだな」くらいで大丈夫です。

ファイル作成から実行までの流れ(おさらい)

このパートでも、実際に手を動かして試すのがいちばん大事です。
手順があやふやな場合は、これまでの流れをもう一度確認しながら進めてください。

基本の流れ(Windows + GCC)

手順
ソースファイルを作成3_6_1.c
コードを入力して保存VS Codeで保存
作業フォルダーへ移動cd \cwork\chap03
コンパイルgcc 3_6_1.c -o 3_6_1
文字コード変更chcp 65001
実行3_6_1

コマンド例

gcc 3_6_1.c -o 3_6_1
chcp 65001
3_6_1

実践問題

ここでは、「%d の数値変更」を使った実践問題に挑戦します。

次のような結果を表示するプログラムを作成してください。
%d を使って、数値を文章に埋め込む形で書いてみましょう。

実行結果例

こんにちは。学習進捗を表示します。
今日は4本のサンプルコードを確認しました。
コンパイルは2回やり直しました。
明日は6ページ読み進める予定です。

ヒント

  • 1行目は文字だけでもOK
  • 2行目〜4行目で %d を使う
  • printf の形は ex3_3_2.c と同じ

解答例

ファイル名:3_6_2.c

// 学習進捗を表示するプログラム
#include <stdio.h>

int main(void)
{
    printf("こんにちは。学習進捗を表示します。\n");
    printf("今日は%d本のサンプルコードを確認しました。\n", 4);
    printf("コンパイルは%d回やり直しました。\n", 2);
    printf("明日は%dページ読み進める予定です。\n", 6);

    return 0;
}

解説

この問題のポイントは、%d を使う位置を自分で決めて書けるかどうかです。

どこに%dを入れるか

文章の中で「数字になる部分」を %d に置き換えます。

  • 4本 → %d本
  • 2回 → %d回
  • 6ページ → %dページ

数値はどこに書くか

%d を書いた printf の後ろ、カンマの右側に書きます。

printf("コンパイルは%d回やり直しました。\n", 2);

この形が書ければOKです。

別解の例(演算を使う書き方)

本文と同じように、演算を使って書いても正解です。たとえば次のように書けます。

ファイル名:3_6_3.c

// 学習進捗を表示するプログラム(演算を使う例)
#include <stdio.h>

int main(void)
{
    printf("こんにちは。学習進捗を表示します。\n");
    printf("今日は%d本のサンプルコードを確認しました。\n", 2 + 2);
    printf("コンパイルは%d回やり直しました。\n", 1 + 1);
    printf("明日は%dページ読み進める予定です。\n", 3 + 3);

    return 0;
}

この書き方でも、実行結果は同じになります。
%d には「整数そのもの」だけでなく「整数になる式」も使える、という確認にもなりますね。

学習を進めるコツ

この段階では、難しい仕組みを全部理解しようとしなくて大丈夫です。
まずは、次の2つを意識できれば十分です。

1つ目:%dは整数の差し込み場所

printf の文字列の中に %d を置いて、あとから数値を渡す書き方に慣れましょう。

2つ目:自分で数字を変えて試す

8 を 12 に変える、3 を 5 に変える、というように、数字を変えて実行結果を見比べると、理解がぐっと進みます。

まとめ

このパートでは、printf の %d を使って、文章の中に整数を埋め込んで表示する方法を学びました。

  • %d は整数を表示する場所
  • 数値は printf のカンマの後ろに書く。
  • %d を使うと数字だけ変更しやすい。
  • %d には簡単な計算式も使える。

ここが使えるようになると、C言語で「ただ文字を出す」から一歩進んで、数字を扱うプログラムが書けるようになります。
次の学習では、%d を使う場面がどんどん増えていくので、ぜひ何本か自分の文章で作って試してみてください。