今回は、C言語の配列について解説します。配列とは、同じ型のデータを連続的に格納することができるデータ構造です。配列を使うと、複数のデータを一つの変数名で扱うことができます。では、具体的に見ていきましょう。
記述方法
C言語では、配列を宣言するときに、以下のように記述します。
型名 配列名[要素数];
型名は、配列に格納するデータの型を指定します。例えば、int型の配列なら、intと記述します。配列名は、任意の変数名を付けます。要素数は、配列に格納できるデータの個数を整数で指定します。例えば、10個のデータを格納できる配列なら、10と記述します。
例えば、以下のように宣言すると、int型のデータを5個格納できる配列が作成されます。
int array[5];
配列にデータを代入するには、以下のように記述します。
配列名[インデックス] = 値;
インデックスは、配列の要素を指定する番号です。インデックスは0から始まります。つまり、最初の要素はインデックス0、最後の要素はインデックス(要素数-1)です。値は、代入するデータです。
例えば、以下のように記述すると、array[0]に10、array[1]に20、array[2]に30というようにデータが代入されます。
array[0] = 10;
array[1] = 20;
array[2] = 30;
配列からデータを取り出すには、以下のように記述します。
変数名 = 配列名[インデックス];
変数名は、取り出したデータを格納する変数です。インデックスは、取り出す要素を指定する番号です。
例えば、以下のように記述すると、変数xにarray[3]の値が代入されます。
x = array[3];
プログラム例
では、実際に配列を使ったプログラムを見てみましょう。以下のプログラムは、5人分のテストの点数を配列で管理し、平均点と最高点を求めるものです。
#include <stdio.h>
int main(void) {
// 配列の宣言
int score[5];
// 合計点と最高点を格納する変数
int sum = 0;
int max = 0;
// 平均点を格納する変数
double average;
// 配列に点数を代入
score[0] = 80;
score[1] = 60;
score[2] = 90;
score[3] = 70;
score[4] = 85;
// 配列から点数を取り出して合計点と最高点を求める
for (int i = 0; i < 5; i++) {
sum += score[i]; // 合計点に加算
// 最高点より大きければ更新
if (score[i] > max) {
max = score[i];
}
}
// 平均点を計算
average = (double)sum / 5;
// 結果を表示
printf("合計点: %d\n", sum);
printf("平均点: %.1f\n", average);
printf("最高点: %d\n", max);
return 0;
}
このプログラムを実行すると、以下のように出力されます。
合計点: 385
平均点: 77.0
最高点: 90
以上で、C言語の配列についての解説は終わりです。最後に、配列を使った演習課題を出題します。以下の問題に挑戦してみてください。
演習課題
- int型の配列を10個宣言し、1から10までの数値を順に代入して表示するプログラムを作成してください。
- int型の配列を10個宣言し、キーボードから10個の数値を入力して代入し、その中から偶数だけを表示するプログラムを作成してください。
- char型の配列を20個宣言し、キーボードから文字列を入力して代入し、その文字列を逆順に表示するプログラムを作成してください。
コメント