この例題はfor文やif文の紹介も兼ねているのだろうと思いますが、
せっかくなので1行で解決するネタを付けておきます。
ネイティブJS編
JavaScript
1var scores = [88, 62, 65, 21, 47, 92, 57, 89, 79, 89, 54, 82, 69, 72, 74, 54, 66, 92, 64, 96, 47, 89, 95, 93, 70, 30, 84, 93, 81, 98, 78, 96, 32, 56, 64, 42, 67];
2var max = Math.max.apply(null, scores);
3// console.log(max); // 98
4
5var sum = scores.reduce(function(sum, it){ return sum + it }, 0);
6// console.log(sum); // 2627
7
8var ave = Math.round(sum / scores.length);
9console.log("平均点は" + ave + "点です");
10console.log("最高点は" + max + "点です");
以下解説
JavaScriptにはMathという計算に特化した組み込みオブジェクトがあります。
Math - MDN
その中にMath.maxという渡した引数の最大の値を返すメソッドが存在します。
ところが、見ての通りscoresは配列なので、可変長引数を求めるMath.maxに直接流し込む事は出来ません。
そこで、配列を可変長引数に変換しながら流し込む為にFunction.prototype.apply()を利用します。
最大値を求める箇所はちょっと難解です。
リスト操作のArray.prototype.reduce()を利用しました。
まぁ、1行で書くテクニックを使ってると思って下さい。
ライブラリを使ってもっと楽に書いたバージョン。
JavaScriptにはこういった計算を超楽にこなすLodashというライブラリがあります。
導入も楽なんで検討してみてくださいね。
https://codepen.io/travist/full/jrBjBz/
このサイトにコピペして挙動を確認してみてください。
最大値を求める
JavaScript
1var scores = [88, 62, 65, 21, 47, 92, 57, 89, 79, 89, 54, 82, 69, 72, 74, 54, 66, 92, 64, 96, 47, 89, 95, 93, 70, 30, 84, 93, 81, 98, 78, 96, 32, 56, 64, 42, 67];
2result = _.max(scores);
3// 98
平均値を求める
JavaScript
1var scores = [88, 62, 65, 21, 47, 92, 57, 89, 79, 89, 54, 82, 69, 72, 74, 54, 66, 92, 64, 96, 47, 89, 95, 93, 70, 30, 84, 93, 81, 98, 78, 96, 32, 56, 64, 42, 67];
2result = _.mean(scores);
3// 71
通しで質問文のコードを再現
JavaScript
1var scores = [88, 62, 65, 21, 47, 92, 57, 89, 79, 89, 54, 82, 69, 72, 74, 54, 66, 92, 64, 96, 47, 89, 95, 93, 70, 30, 84, 93, 81, 98, 78, 96, 32, 56, 64, 42, 67];
2console.log("平均点は" + _.mean(scores) + "点です");
3console.log("最高点は" + _.max(scores) + "点です");