// レポート課題05 // 配列の添え字は使ってOK /* //Cプログラム #include #define DATA_NUM 5 void acmAvg(double data) { // ここから // ここまで printf("%.3f\n", data); //ここで平均値を出力する.dataの部分は変更してよい. } int main(void) { double data[DATA_NUM] = { 1.0, 5.0, 4.0, 5.0, 3.0 }; int i; for(i = 0; i < DATA_NUM; i++) { acmAvg(data[i]); } return 0; } //実行例 # ./report5 1.000 3.000 3.333 3.750 3.600 */ public class ExerR05 { public static final int DATA_NUM = 5; // Javaではstaticなローカル変数を扱えないので, // 代わりにクラス内かつメソッド外に宣言した変数を使う. // Javaではここに宣言された変数のことをフィールドと呼ぶ. // フィールドは異なるメソッドから参照できる. // おまじないとしてフィールドも最初にpublic staticを与えることとする. public static double wa = 0.0; // これまで処理したデータの和 public static int kosuu = 0; // これまで処理したデータの数 public static void acmAvg(double data) { // ここから フィールドwaとkosuuを使って計算してよい kosuu++; wa += data; // ここまで System.out.printf("%.3f\n", wa / kosuu); // ここで平均値を出力する.dataの部分は変更してよい. } public static void main(String[] args) { double[] data = {1.0, 5.0, 4.0, 5.0, 3.0}; int i; for (i = 0; i < DATA_NUM; i++) { acmAvg(data[i]); } } }