平均値を表示するプログラムを作りました。以下のソースファイル「average.c」はその一部なのですが、改善できる部分があります。
![](/wp-content/include/images/avatar/teacher/5.png)
どこが改善できるか分かりますか?
average.c
#include <stdio.h>
double sumOfValues = 0;
int numberOfValues = 0;
void AddValue(double n) {
sumOfValues += n;
numberOfValues += 1;
}
void PrintAverage(void) {
if (numberOfValues > 0) {
printf("Average = %f\n", sumOfValues / numberOfValues);
} else {
printf("No data.\n");
}
}
なお、このプログラムは別のソースファイル内から(main()
などから)、次のように2種類の関数を呼び出して使用することを想定したものです。
サンプルコード
/* 数値を足していく */
AddValue(2.0);
AddValue(1.5);
AddValue(5.5);
AddValue(1.0);
/* 最後に平均値を表示する */
PrintAverage();
実行結果
Average = 2.500000
![](/wp-content/include/images/avatar/teacher/2.png)
今回のプログラムは、複数のモジュールからできていることが分かるかしら?
![](/wp-content/include/images/avatar/student/2.png)
えっと、「average.c」が1つのモジュールってことですよね?
![](/wp-content/include/images/avatar/teacher/3.png)
そうね。その中にある2つの関数を……
![](/wp-content/include/images/avatar/student/3.png)
別のモジュールから呼び出す仕組みですね!
![](/wp-content/include/images/avatar/teacher/4.png)
そういうこと!2つの関数が、そのためのインターフェースになっているということよ。
![](/wp-content/include/images/avatar/teacher/7.png)
「average.c」の実装に注目してみましょう。