導入
配列は、同じ型の値を連続して並べた入れ物です。番号(インデックス、0始まり)で各要素にアクセスします。
説明
型 名前[個数] = { 値, ... }; で宣言・初期化します。名前[番号] で各要素を読み書きします。番号(インデックス)は必ず 0 から始まることに注意してください。
flowchart LR
subgraph A["int scores[3] = {80, 95, 70};"]
direction LR
i0["scores[0]<br/>80"]
i1["scores[1]<br/>95"]
i2["scores[2]<br/>70"]
end
#include <stdio.h>
int main(void) {
int scores[3] = {80, 95, 70};
printf("%d\n", scores[0]); // 80(先頭)
printf("%d\n", scores[2]); // 70
scores[1] = 100; // 書き換え
printf("%d\n", scores[1]); // 100
return 0;
}
for と組み合わせると、全要素をまとめて処理できます。合計を求める定番の形です。
#include <stdio.h>
int main(void) {
int nums[5] = {10, 20, 30, 40, 50};
int total = 0;
for (int i = 0; i < 5; i++) {
total += nums[i];
}
printf("合計 %d\n", total); // 150
return 0;
}
インデックスは 0 から始まり、個数 - 1 までです。範囲外(例 nums[5])を触ると、思わぬ値やエラーになるので注意します(C は範囲チェックをしてくれません)。
やってみよう
nums の中身や個数を変えて、合計がどう変わるか確かめましょう。for の中で nums[i] を1つずつ表示してみてください。
演習
int data[4] = {3, 6, 9, 12}; の最大値を for で求めて表示してください(結果は 12)。
ヒント1を見る
int maxv = data[0]; から始め、for の中で if (data[i] > maxv) maxv = data[i];。