整数型配列変数の例
配列変数として、整数型の配列を使った簡単なプログラムを用意しました。
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桁まで、指定しています。
