C言語で配列を関数に渡す方法を解説!平均値計算のサンプルコード
C言語において、配列を関数へ渡す方法を理解することは、効率的なプログラムを書くうえで非常に重要です。ここでは、配列の要素の平均値を計算するサンプルコードを通じて、その基本的な仕組みをわかりやすく解説します。
サンプルコード
#include <stdio.h>
float avg(float a[]) {
int i;
float avg, sum = 0.0;
for (i = 0; i < 6; ++i) {
sum += a[i];
}
avg = (sum / 6);
return avg;
}
int main() {
float avg1, a[] = {63,21,34.4,12.5,3,2.2};
avg1 = avg(a);
printf("Average : %f", avg1);
return 0;
}
実行結果
このプログラムを実行すると、以下の出力が得られます。
Average : 22.683332
avg() 関数の処理内容
上記のプログラムでは、平均値を計算する本体となるコードが avg() 関数内に記述されています。for ループの中で配列の各要素を順番に加算して合計値を求め、その合計を要素数(6)で割ることで平均値を算出し、return 文で結果を返しています。
float avg(float a[]) {
int i;
float avg, sum = 0.0;
for (i = 0; i < 6; ++i) {
sum += a[i];
}
avg = (sum / 6);
return avg;
}
main() 関数での配列の初期化と関数呼び出し
main() 関数では、まず配列 a に初期値を設定し、その配列を引数として avg() 関数を呼び出しています。計算結果は変数 avg1 に格納され、printf() 関数によって画面に出力されます。
float avg1, a[] = {63,21,34.4,12.5,3,2.2};
avg1 = avg(a);
補足:C言語における配列の受け渡しの仕組み
厳密に言うと、C言語で配列を関数に渡す場合、実際には配列全体がコピーされるのではなく、配列の先頭要素へのポインタが渡されます。そのため、仮引数の float a[] は float *a とほぼ同じ意味を持ちます。この仕組みを理解しておくと、関数内での配列操作やメモリの挙動を正しく把握でき、より安全で効率的なコードを書くことにつながります。
-
C#のメソッドに配列を引数として渡す方法を解説
C#では、配列をそのままメソッドの引数として渡すことができます。本記事では、配列の宣言・初期化から、メソッドへの受け渡し、実際のサンプルコードと実行結果まで、順を追ってわかりやすく解説します。 1. 配列の宣言と初期化 まず、メソッドに渡すための配列を宣言し、初期化しておきましょう。ここでは、5つの要素を持つint型の配列を用意します。 MyArray app = new MyArray(); /* 5つの要素を持つint型配列 */ int[] balance = new int[]{1000, 2, 3, 17, 50}; 2. 配列を受け取るメソッドを定義する 次に、配列を引数として
-
C#で配列に値が存在するかどうかを確認する方法
C#では、Array.Existsメソッドを使用することで、配列内に特定の値が存在するかどうかを簡単に確認できます。 まず、文字列型の配列を用意しましょう。 string[] strArray = new string[] {keyboard, screen, mouse, charger }; 例として、この配列の中から「keyboard」という値を検索したい場合を考えてみます。その際は、Array.Exists()メソッドを次のように呼び出します。 Array.Exists(strArray, ele => ele == keyboard); 条件に一致する要素が配列内に存在すれば