配列の使い方
2012年11月26日:C言語
変数をいくつも定義したい状況がよくあります。
このときいちいち一つずつ変数を定義するのは面倒です。
そのようなとき、配列を使用すれば簡単に複数の変数を定義できます。
ここでは、配列の定義の仕方から使い方までを解説します。
配列の必要性
あなたがあるクラスを受け持ったとします。
このとき、クラスの人数は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
著者:安井 真人(やすい まさと)
@yasui_masatoさんをフォロー