05 演算子(基礎)

四則演算・剰余・演算の優先順位を学ぶ。
特に整数の割り算と剰余は C言語特有の挙動があるため注意。


05-1 算術演算子

演算子意味結果
+加算15 + 419
-減算15 - 411
*乗算15 * 460
/除算15 / 43 ※小数切り捨て
%剰余(余り)15 % 43
整数型同士の / は小数点以下を切り捨てる。
7 / 23.5 ではなく 3 になる。これは頻出バグの原因。
小数が必要な場合は floatdouble を使うか、キャストが必要(後の章で学ぶ)。

05-2 実行例:四則演算

#include <stdio.h>

int main(void)
{
    int a = 15;
    int b = 4;

    printf("a + b = %d\n", a + b);
    printf("a - b = %d\n", a - b);
    printf("a * b = %d\n", a * b);
    printf("a / b = %d\n", a / b);   // 小数切り捨て
    printf("a %% b = %d\n", a % b);  // %% で % を表示

    return 0;
}

実行結果:

a + b = 19
a - b = 11
a * b = 60
a / b = 3
a % b = 3
printf の中で % を文字として表示したいときは %% と書く。
% 単体では書式指定子の開始として解釈されてしまう。

05-3 剰余(%)の使い道

剰余は「割った余り」を返す演算子で、実際のプログラムでよく使う。

用途コード例判定
偶数・奇数の判定n % 2 == 00 なら偶数、1 なら奇数
3の倍数か判定n % 3 == 00 なら 3 の倍数
循環するインデックスi % 配列サイズ範囲を超えたら最初に戻る

05-4 演算の優先順位

複数の演算子が混在するとき、計算される順序に規則がある。

優先度演算子説明
()カッコの中を先に計算
* / %乗算・除算・剰余
+ -加算・減算
=代入(最後に行われる)
int a = 2 + 3 * 4;      // 3*4=12 → 2+12=14
int b = (2 + 3) * 4;    // 2+3=5  → 5*4=20
2 + 3 * 4   = 14
(2 + 3) * 4 = 20
✅ 優先順位を覚えきれないうちは、意図を明確にするためにカッコを積極的に使うとよい。

05-5 理解度チェック

Q1. int x = 7 / 2; の結果はどれか。

ア. 3
イ. 3.5
ウ. 4
エ. コンパイルエラー

解説を表示

正解:ア

整数型同士の割り算は小数点以下を切り捨てた整数になる。
7 / 2 = 3.5 → 切り捨てて 3

Q2. 10 % 3 の結果はどれか。

ア. 1
イ. 3
ウ. 0
エ. 3.33

解説を表示

正解:ア

10 ÷ 3 = 3 余り 1 なので、剰余は 1

Q3. 次の式の計算結果はどれか。

int result = 1 + 2 * 3 - 4 / 2;

ア. 3
イ. 5
ウ. 7
エ. 4

解説を表示

正解:イ

優先順位に従い乗除を先に計算する。
2 * 3 = 64 / 2 = 21 + 6 - 2 = 5

Q4. printf の中で % を文字として出力するにはどう書くか。

ア. \%
イ. %%
ウ. /%
エ. &%

解説を表示

正解:イ

printf では % が書式指定子の開始文字として使われるため、
文字としての % を出力したいときは %% と書く。


05-6 まとめ

ポイント内容
算術演算子+ - * / % の 5 種類
整数の割り算小数点以下は切り捨て。7 / 2 = 3
剰余余りを返す。偶奇判定などに活用
優先順位* / %+ - の順。迷ったら () で明示
%%printf 内で % 文字を出力するときの書き方