プログラミング

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同士の割り算では小数部分が切り捨てられる

前の回 / 次の回:条件分岐

← 記事一覧へ戻る