配列の使い方

配列の使い方

変数をいくつも定義したい状況がよくあります。

このときいちいち一つずつ変数を定義するのは面倒です。

そのようなとき、配列を使用すれば簡単に複数の変数を定義できます。

ここでは、配列の定義の仕方から使い方までを解説します。

配列の必要性

あなたがあるクラスを受け持ったとします。

このとき、クラスの人数は30人です。

そして、このクラスでプログラミングのテストをしました。

あなたはテストの結果をまとめて平均点や最小値・最大値を計算したいと考えました。

手計算では面倒なのでプログラムを組むことにしました。

あなたはどのようにプログラムを組みますか?

 

まず、データを入力するために太郎君の点数をtaro、花子さんの点数をhanakoとして

int taro,hanako,…;
taro=34;
hanako=21;
…

と変数を用意して、点数を入力することでしょう。

しかし、これでは変数名を覚えるのに時間がかかります。

それに、平均を計算する際

int average;
average=(taro+hanako+…)/30;

コードを書くのが長くて面倒です。

そこで配列を使うことが重要となります。

配列の宣言

配列とは数の並びのことです。先ほど、taro,hanako,…としていたのをひとまとめにしようという発想です。つまり、

int tokuten[30];

とします。整数型の変数の組を30組用意するという意味です。

データ型 変数名[サイズ];

で宣言できます。これで、先ほど

int taro,hanako
taro=24;
hanako=49;

としていたのを

int tensu[30];
tensu[0]=27;
tensu[1]=49;

とすることができます。これで変数を覚えるのが楽になりましたね。実際に

int tensu[30],i;
for(i=0;i<30;i++){
  printf("生徒%dの点数:",i);
  scanf("%d",&tensu[i]);
}

すれば、プログラムを実行すれば順にデータを入力できます。

言い忘れていましたが、

tensu[0],tensu[1],…,tensu[29]という具合に、0からスタートします。

サンプルプログラム

では点数を入力して平均点を出力するコードを書いていきます。

#include <stdio.h>
int main(void){
  //データの入力
  int tensu[10],i,average;
  for(i=0;i<10;i++){
     printf("生徒%dの点数:",i+1);
     scanf("%d",&tensu[i]);
  }
  //平均点の計算
  average=0;
  for(i=0;i<10;i++){
     average=average+tensu[i];//相和を取る
  }
  average=average/30;
  //表示
  printf("平均点:%d\n",average);
  return 0;
}

実行すると、点数を入力したら平均点が出力されます。ここでは生徒数を10人としています。実行例を以下に示します。

生徒1の点数:28
生徒2の点数:19
生徒3の点数:100
生徒4の点数:29
生徒5の点数:93
生徒6の点数:84
生徒7の点数:23
生徒8の点数:4
生徒9の点数:22
生徒10の点数:10
平均点:13

著者:安井 真人(やすい まさと)