第5回:関数(3) (演習の解答例)

演習課題

(1)配列を渡すと,配列の平均値を計算する関数を用いて,実数をキーボードから10個入力すると,平均値を答えるプログラムを作成せよ。

#include <stdio.h>

float average(float data[], int n)  /* 平均の計算 */
{
    int i;
    float sum = 0;

    for(i=0;i<n;i++){
        sum += data[i];
    }

    return sum / n;
}

void main()
{
    int i;
    float data[10];	

    for(i=0; i<10; i++){
        scanf("%f", &(data[i]));
    }

    printf("平均値:%f¥n", average(data, 10));
}

(2)長方形の幅と高さを入力すると,面積と外周を求める関数.
ヒント:void area_out(float width, float height, float *area, float *out)...

void area_out(float width, float height, float *area, float *out)
{
    *area = width * height;
    *out = (width + height) * 2;
}

(3)運動時の加速度と時間を入力すると,速度と距離を求める関数.
ヒント:void v_s(float a, float t, float *v, float *s)...

void v_s(float a,float t,float *v,float *s)
{
    *v = a * t;
    *s = 0.5 * a * t * t;
}

(4)抵抗と電流を入力すると,電圧と電力を求める関数.
ヒント:void v_p(float r, float i, float *v, float *p)...

void v_p(float r, float i, float *v, float *p)
{
    *v = i * r;
    *p = i * i * r;
}

(5)関数内で配列に変更を加えるとどうなるか,確認する。

これは,確認して下さい。