C++
 Computer >> コンピューター >  >> プログラミング >> C++

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 とほぼ同じ意味を持ちます。この仕組みを理解しておくと、関数内での配列操作やメモリの挙動を正しく把握でき、より安全で効率的なコードを書くことにつながります。

  1. C#のメソッドに配列を引数として渡す方法を解説

    C#では、配列をそのままメソッドの引数として渡すことができます。本記事では、配列の宣言・初期化から、メソッドへの受け渡し、実際のサンプルコードと実行結果まで、順を追ってわかりやすく解説します。 1. 配列の宣言と初期化 まず、メソッドに渡すための配列を宣言し、初期化しておきましょう。ここでは、5つの要素を持つint型の配列を用意します。 MyArray app = new MyArray(); /* 5つの要素を持つint型配列 */ int[] balance = new int[]{1000, 2, 3, 17, 50}; 2. 配列を受け取るメソッドを定義する 次に、配列を引数として

  2. C#で配列に値が存在するかどうかを確認する方法

    C#では、Array.Existsメソッドを使用することで、配列内に特定の値が存在するかどうかを簡単に確認できます。 まず、文字列型の配列を用意しましょう。 string[] strArray = new string[] {keyboard, screen, mouse, charger }; 例として、この配列の中から「keyboard」という値を検索したい場合を考えてみます。その際は、Array.Exists()メソッドを次のように呼び出します。 Array.Exists(strArray, ele => ele == keyboard); 条件に一致する要素が配列内に存在すれば