C言語超入門② 変数と入力を使おう
int、double、charによる変数宣言と、printf・scanfを使った入力と計算を学びます。
第2回では、値を保存する変数を作り、キーボードから受け取った数字を計算に使います。
この回でできるようになること
- 整数・小数・文字を変数へ保存する
- 変数の値をprintfで表示する
- scanfで数字を入力する
- 四則演算を使う
変数を宣言する
変数は、値を入れておく名前付きの箱です。C言語では、箱に入れる値の種類を最初に決めます。
int age = 16;
double height = 168.5;
char grade = 'A';
| 型 | 保存する値 | 例 |
|---|---|---|
| int | 整数 | 16、-3、100 |
| double | 小数 | 3.14、168.5 |
| char | 1文字 | ‘A’、‘x’ |
この値の種類を型と呼びます。文章はcharの配列として扱いますが、第6回で説明します。
変数を表示する
printfで変数を表示するときは、値の種類に合った書式指定子を使います。
#include <stdio.h>
int main(void) {
int age = 16;
double height = 168.5;
char grade = 'A';
printf("年齢: %d\n", age);
printf("身長: %.1f cm\n", height);
printf("評価: %c\n", grade);
return 0;
}
%dはint、%fは小数、%cは1文字を表示する場所です。%.1fは小数点以下を1桁にします。
scanfで数字を受け取る
#include <stdio.h>
int main(void) {
int age;
printf("年齢を入力してください: ");
scanf("%d", &age);
printf("来年は%d歳です。\n", age + 1);
return 0;
}
scanfは入力を受け取る関数です。&ageは、ageがメモリ上に置かれている場所を表します。scanfはその場所へ入力値を書き込みます。
&の詳しい意味は、第7回のポインタで学びます。今は「scanfで変数に入力するときに必要」と覚えて大丈夫です。
計算する
int a = 10;
int b = 3;
printf("足し算: %d\n", a + b);
printf("引き算: %d\n", a - b);
printf("掛け算: %d\n", a * b);
printf("割り算: %d\n", a / b);
printf("余り: %d\n", a % b);
int同士の割り算では小数部分が切り捨てられ、10 / 3は3になります。小数まで求めたいときはdoubleを使います。
よくある間違い
- scanfの変数に
&を付け忘れる - intへ小数を入れようとする
%dや%fを型と合わせていない- 1文字をダブルクォーテーションで囲む
練習してみよう
2つの整数を入力し、その合計を表示するプログラムを作ってみましょう。
模範解答
#include <stdio.h>
int main(void) {
int a;
int b;
printf("1つ目の整数: ");
scanf("%d", &a);
printf("2つ目の整数: ");
scanf("%d", &b);
printf("合計は%dです。\n", a + b);
return 0;
}
解説
scanfへ変数の場所を渡すため、aとbの前に&を付けます。2つの入力が終わった後、a + bの計算結果を%dの位置へ表示しています。
この回のまとめ
- 変数を作るときは型と名前を書く
- printfの書式指定子は型に合わせる
- scanfで入力した値を変数へ保存できる
- int同士の割り算では小数部分が切り捨てられる