C プログラミング (C Programming)

[2017/09/23, H.Aman]
[← 演習のページへ戻る]

サンプルプログラム 1 の内容

 1:   #include <stdio.h>
 2:  	
 3:   int main(void){
 4: 	 int a, b;
 5:      printf("二つの整数を入力してください:");
 6:      scanf("%d %d", &a, &b);
 7:  
 8:      printf("a = %d\n", a);
 9:      printf("b = %d\n", b);
10:      printf("a + b = %d \n", a + b);
11:
12:      return 0;
13:   }

6 行目:scanf("%d %d", &a, &b);

 1:   #include <stdio.h>
 2:  	
 3:   int main(void){
 4: 	 int a, b;
 5:      printf("二つの整数を入力してください:");
 6:      scanf("%d %d", &a, &b);
 7:  
 8:      printf("a = %d\n", a);
 9:      printf("b = %d\n", b);
10:      printf("a + b = %d \n", a + b);
11:
12:      return 0;
13:   }

前回学んだように,scanf による整数の読み込みでは書式を "%d" と指定しておいて,
その後にカンマで区切って, 代入先の変数名の前に & を付けて &a というかたちで書けば良いことになります.
つまり,scanf("%d", &a); ということです.

今回は,二つの整数を読み込むことになります.
もちろん scanf 関数を 2 回書いてもよいのですが,ここでは一つにまとめて書く方法を紹介します.

ポイントになるのはダブルクォーテーション(")で囲まれた書式指定部分です.
サンプルプログラムでは scanf("%d %d", &a, &b);
と書いてあります.
%d が整数に対応するのですが,この場合は 二つの %d が空白(半角スペース)を挟んで書いてあるので

整数 整数

というかたちで入力するという意味になります. ※   は半角スペースを意味します.
例えば 57 12 といったかたちです.

ちなみに,半角スペースの代わりにカンマ(,)を指定した場合は,カンマ区切りで整数を入力することになります.
つまり,scanf("%d,%d", &a, &b); と指定した場合は 57,12 といったかたちです.

※よくあるミス:半角スペースではなく(その直前に日本語を入力していたために)誤って全角スペースをプログラム中に指定してしまうことがあります.

scanf("%d %d", &a, &b);

こう書いてしまうと,実行の際にわざわざ整数と整数の間に全角スペースを入れないとうまく動かないことになります.