第4回|四則演算と演算子を学ぶ:C言語で数値を計算する

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第4回|四則演算と演算子を学ぶ:C言語で数値を計算する

はじめてのC言語 | 第4回

目次

はじめに

前回は、int 型の変数に整数を保存して表示しました。
今回は、C言語で数値を計算する方法を学びます。

この回の目的は次の4点です。

  • 四則演算の書き方を覚える
  • 演算子の意味を理解する
  • 計算結果を変数に保存できるようにする
  • 整数同士の割り算で起こる挙動を正確に理解する

演算子とは何か

演算子は、値に対して計算や比較を行うための記号です。
今回は、整数の計算で使う基本的な演算子を扱います。

  • + : 足し算
  • – : 引き算
  • * : 掛け算
  • / : 割り算
  • % : 余り

最初のサンプルコード

ソースコード

calc.c という名前で保存します。

#include <stdio.h>

int main(void) {
     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);

     return 0;
}

実行手順

1. 作業ディレクトリに移動する

cd ~/Desktop

2. コンパイルする

clang calc.c -o calc

3. 実行する

./calc

実行結果:

13
7
30
3
1

各演算子の意味

足し算 +

printf("%d\n", a + b);

10 + 3 なので、結果は 13 です。

引き算 –

printf("%d\n", a - b);

10 – 3 なので、結果は 7 です。

掛け算 *

printf("%d\n", a * b);

10 * 3 なので、結果は 30 です。

割り算 /

printf("%d\n", a / b);

ここは注意が必要です。
a も b も int 型なので、整数同士の割り算になります。

10 / 3 の結果は 3.333… ではなく、3 です。
小数部分は切り捨てられます。

余り %

printf("%d\n", a % b);

10 ÷ 3 の余りは 1 なので、結果は 1 です。

計算結果を変数に保存する

計算結果は、そのまま表示するだけでなく、変数に保存できます。

#include <stdio.h>

int main(void) {
     int price = 120;
     int quantity = 4;
     int total = price * quantity;

     printf("%d\n", total);

     return 0;
}

実行結果:

480

このように、式の結果を別の変数に入れておくと、後で再利用できます。

割り算で初心者がつまずきやすい点

整数同士の割り算は小数にならない

次のコードを見てください。

#include <stdio.h>

int main(void) {
     int a = 5;
     int b = 2;

     printf("%d\n", a / b);

     return 0; 
}

実行結果:

2

5 / 2 なので 2.5 を期待しやすいですが、結果は 2 です。
これは int 型同士で計算しているためです。

この段階では、int 型の割り算は「整数の結果だけが残る」と理解しておけば十分です。

式と代入を組み合わせる

C言語では、計算式を右辺に書いて代入できます。

#include <stdio.h>

int main(void) {
     int x = 8;
     int y = 2;
     int result = x + y * 3;

     printf("%d\n", result);

     return 0;
}

実行結果:

14

これは、先に y * 3 が計算され、その後で x + … が計算されるためです。

演算の優先順位

基本的には、普通の算数と同じように考えて構いません。

  • 掛け算、割り算、余り
  • 足し算、引き算

たとえば次の式:

int result = 2 + 3 * 4;

この結果は 20 ではなく 14 です。
先に 3 * 4 が計算されます。

かっこで順番を明示する

不安なときは、かっこを使います。

int result = (2 + 3) * 4;

この場合は、先に 2 + 3 を計算するので、結果は 20 です。

かっこを使うと、読みやすさも上がります。

よくあるエラー

expected expression

原因: 演算子の前後に必要な値がありません。

誤った例:

int x = 10 + ;

対処: 演算子の左右に正しい値や変数を書く必要があります。

division by zero

次のような計算はできません。

int x = 10 / 0;

0で割ることはできないため、実行時エラーや未定義動作の原因になります。
割り算をするときは、割る側の値が0でないことを確認する必要があります。

* を x と書かない

掛け算は x ではなく * を使います。

正しい例:

int total = 3 * 4;

練習用コード

次のコードを書いて、結果を確認してください。

#include <stdio.h>

int main(void) {
     int a = 20;
     int b = 6;

     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);

     return 0;
}

実行結果:

26
14
120
3
2

まとめ

今回のポイントは次のとおりです。

  • +、-、*、/、% を使うと整数の四則演算ができる
  • 演算子を使って値同士の計算ができる
  • 計算結果はそのまま printf で表示できる
  • 計算結果を変数に保存して使うことができる
  • 整数同士の割り算や余りの動作を理解することでミスを防げる

この回では、C言語で整数の四則演算を行う方法を確認しました。
今後は、計算した結果を条件分岐や繰り返しに使う場面が増えます。

次回予告

次回は、if 文を使った条件分岐に進みます。
「条件によって動きが変わる」という考え方を、これまで学んだ変数や演算子とつなげながら、やさしく見ていきましょう。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

用途ごとに選ぶ C言語のおすすめ本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次