要点: 全体像を眺めてみてください。
とありますね。
合計と平均を割り出したい。そういうことです。
で、平均はどうやって出しますか?
私の言葉で書くと
だった気がします。
例えば、
{ 3, 3, 4, 5, 8, 9, 1, 2 }
という8つの数字の平均を割り出すときは、
ave = (3 + 3 + 4 + 5 + 8 + 9 + 1 + 2) / 8
となり、ave = 4.375 となりますね。( あ、計算苦手なので計算ミスしているなら読み替えてください... )
平均の値はともかく、計算方法は人間が解く場合はこういう風にしますね。
で、総計を出す場合は単純に
Java
1int arr[] = ...; // すでに入っているとして.インスタンス化も行われているとする
2int sum = 0; // 0 で初期化しておく
3
4sum = arr[0] + arr[1] + arr[2] + arr[3] + ... arr[7]; // 4~6は省略しているので読み替えて!
みたいにできますが、これは配列の数がコーディング時にわかっている場合。
例えばCSVファイルとかのようなファイルから存在するデータを引き抜いて配列に格納して計算...とかみたいに上限がわからない場合がある。
またはCでいう関数化, Javaでいうメソッド化しておいて汎用性を持たせて、Cでいうqsort関数みたいにするような場合は毎回作らないといけない。
でも書き方を変えると汎用性を持たせることも可能。
Java
1// int arr[8] があるとして。
2int sum = 0;
3
4sum += arr[0];
5sum += arr[1];
6sum += arr[2];
7...
8sum += arr[7];
とすることも可能ですね。
簡単に言えば、
ave = (3 + 3 + 4 + 5 + 8 + 9 + 1 + 2) / 8
を一個ずつ計算している感じ。
でもよく見ると、常に sum += arr[~]; が同じで、"~"が数字であり、0~7でやっている。
だからforでループさせながら配列内のデータを追加していっている。
で、平均は総計が完全に求まらないとできない。よってforから抜けたときに行う。
流れを矢印やフローチャートなんかで記述して全体像を読んでみてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/27 07:38