以下のプログラムはグローバル変数に定義され、初期化された 10個の int型データの合計、平均、分散、標準偏差を求めて表示するプログラムである。
このプログラムを以下のような関数を用いて書き換えよ。
| return型 | 関数名 | 引数 | 機能 |
| int | get_goukei | なし | 合計を求めて返却する |
| double | get_bunsan | 平均値 | 分散を求めて返却する |
なお、n件のデータの分散と標準偏差を求める式は以下である。
分散 = { (要素0 - 平均値)2 + (要素1 - 平均値)2 +・・・+
(要素n-2 - 平均値)2 + (要素n-1 - 平均値)2 } / n
標準偏差 = √分散
#include <stdio.h>
#include <math.h>
#define N 10
int data[N] = { 80, 76, 59, 87, 66, 54, 40, 78, 94, 61 };
int main( void )
{
double heikin, bunsan = 0.0, hensa;
int goukei = 0;
int i;
for ( i = 0; i < N; i++ ) {
goukei = goukei + data[i];
}
heikin = ( double ) goukei / N;
for ( i = 0; i < N; i++ ) {
bunsan = bunsan + ( data[i] - heikin ) * ( data[i] - heikin );
}
bunsan = bunsan / N;
hensa = sqrt( bunsan );
printf( "合計点 : %d\n", goukei );
printf( "平均点 : %f\n", heikin );
printf( "分散 : %f\n", bunsan );
printf( "標準偏差 : %f\n", hensa );
return 0;
}
【問1】のグローバル変数を main()関数のローカル変数に書き換えてプログラムを作り直せ。
get_goukei() と get_bunsan() の return型と引数は都合のよいように書き換えよ。
【問1】 【問2】の実行結果 合計点 : 695 平均点 : 69.500000 分散 : 243.650000 標準偏差 : 15.609292
▼戻る▼
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved