整数型配列変数の例
配列変数として、整数型の配列を使った簡単なプログラムを用意しました。
10日間の気温の変化データを配列として用意し、その中から、平均気温を求めてみることにします。
整数型の配列に、数値を代入する方法には、1つずつ入力する方法もありますが、 下のプログラムの例のように、中カッコ「{}」でくくって、その中にコンマで区切って 値を記述する方法もあります。
#include <stdio.h> float mean_tmp(int* ,int); /* 関数のプロトタイプ宣言 */ int main(void) { int temp[10] = {10,12,11,8,7,6,5,8,6,9}; /* 配列変数の初期化 */ int day; day = sizeof(temp)/sizeof(int); /* 合計の日 */ float meantmp; /* 平均気温の変数 */ meantmp = mean_tmp(temp, day); /* 平均気温関数を呼び出す */ printf("平均気温=%0.2f", meantmp); /* 画面への出力 */ return 0; } /* 平均気温を出す関数 入力部=整数型配列変数、合計日、出力部=浮動小数点 */ float mean_tmp(int temp[], int day) { int sum=0; /* 合計の気温 */ int i; /* 配列用インデックス */ float mean; /* 平均気温 */ for(i=0; i<day; i++) sum = sum + temp[i]; /* 合計の気温を出す */ mean = (float)sum/day; /* 平均気温を出す */ return mean; } |
上のプログラムの平均気温を出す関数の入力部(引数)は、配列ですが、プロタイプ宣言では、 間接演算子を用いて、ポインタ型を指定しています。配列はよくポインタとして利用する場合が あるようです。 関数の出力部は、精度の低い浮動小数点(float)としました。
配列とポインタは、非常に相性がいいので、このように組み合わせた使い方ができるようです。 このあたりが少しややこしいですが、こういう使い方をする場合には、配列が定義されているという 前提がなければできません。配列が実際に定義されていて、その配列の先頭アドレスが、 はっきりしていて、変数の型も同じ場合にのみ、このような、ことができるようです。 間接演算子「*」(ポインタ型)を使っても、同様のことが可能です。
メイン関数での出力は、「%0.2f」を使って、小数点以下2桁まで、指定しています。