コース一覧
    C言語基礎 関数・配列編
    配列とfor

    C言語基礎 関数・配列編

    C言語の関数と配列を学び、処理を分割してデータを扱うコースです。

    1
    関数
    01. 関数を定義する15分
    02. 引数と戻り値15分
    03. プロトタイプ宣言15分
    04. void関数15分
    05. 変数のスコープ15分
    06. つくる 関数に分割15分
    07. 第5章クイズ10分
    2
    配列と文字列
    01. 配列15分
    02. 配列とfor15分
    03. 集計15分
    04. 最高点と最低点15分
    05. 文字列(char配列)15分
    06. 文字列関数15分
    07. 文字列の入力15分
    08. つくる 配列で成績管理15分
    09. 第6章クイズ10分

    配列とfor

    添字を変数にできるのが配列の本当の価値

    前回は scores[0] scores[2] のように、添字を直接書いて取り出しました。しかし配列がありがたいのは、添字に 変数を書ける ところです。

    c

    int i = 2;
    printf("%d\n", scores[i]);

    変数を書けるということは、第4章で学んだ for の変数 i をそのまま添字にできるということです。5個でも100個でも、書くコードの量は変わりません。

    c

    int scores[5] = {80, 65, 92, 74, 58};
    
    for (int i = 0; i < 5; i++) {
        printf("%d科目目 %d点\n", i + 1, scores[i]);
    }

    i は 0 から 4 まで動き、そのまま scores[i] の添字になります。人に見せる番号は1から始めたいので、表示のときだけ i + 1 にしています。内部の番号と、人に見せる番号を分けて考えるのがコツです。

    条件は「以下」ではなく「未満」で書く

    ループの条件は i <= 5 ではなく i < 5 です。i <= 5 にすると i が 5 のときにも回ってしまい、存在しない scores[5] を読みます。前回話したとおり C は止めてくれないので、ゴミの値が表示されたり、まれにプログラムが落ちたりします。

    要素数を n とすると、条件は必ず i < n になります。この形をそのまま覚えてしまってかまいません。1つずれる間違いは、初学者だけでなく実務でも最も多いバグのひとつです。

    入力もループで回す

    表示だけでなく、入力も同じ形で書けます。

    c

    for (int i = 0; i < 5; i++) {
        scanf("%d", &scores[i]);
    }

    scanf には & が要るのは第2章のとおりです。scores[i] は int の箱1つなので、ふつうの int 変数と同じように &scores[i] と書きます。

    入力のループと表示のループは分けて書きます。まとめてしまうと、全部入力し終わってから一覧を出す、という形にできなくなるからです。

    個数を1か所にまとめる

    5 という数がコードのあちこちに出てくると、6科目に増やすときの直し忘れが起きます。定数にしておくと1か所で済みます。

    c

    #define SUBJECTS 5
    
    int scores[SUBJECTS];
    for (int i = 0; i < SUBJECTS; i++) { ... }

    #define は、コンパイル前に名前を値へ置き換える指示です。#include と同じ仲間で、行の終わりにセミコロンは付けません。

    では、入力と表示の2つのループを書いてみましょう。

    要件

    1. 5つの整数を配列 scores に読み込む
    2. 1科目目 80点 の形で5行表示する
    3. 表示は for で回す。printf を5行並べない

    ヒント

    表示の番号は i ではなく i + 1 です

    ループの条件は i < 5 です。i <= 5 にすると1つ多く回ります

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/07

    関連レッスン

    • 集計

      配列から合計と平均を出せるようになります。

    • 最高点と最低点

      比較しながら最大値と最小値を探せるようになります。

    • 文字列(char配列)

      C の文字列が終端記号付きの char 配列であることを説明できるようになります。

    • 文字列関数

      strlen と strcmp を使えるようになります。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • 変数データに名前をつけて参照する仕組み
    • 配列サイズ固定の同型データの集まり
    • ループ繰り返し処理。矢印で戻すか専用記号で示す
    • 素数1 と自分自身でしか割り切れない自然数
    • コンパイルソースをバイトコードへ変換する処理
    main.c
    エディタを読み込んでいます

    メモ

    配列とfor

    ⌘S で保存