teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コードの追加

2020/07/09 13:23

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -27,4 +27,52 @@
27
27
  System.out.printf("%-9s %3.0f %6.1f\n",
28
28
  names[i], score[i], deval[i]);
29
29
  }
30
+ ```
31
+ **追記**
32
+ もう解決済みですか?
33
+ 質問のコードをどんどん修正すると、回答の指摘が何のことかわからなくなるので
34
+ 修正コードは追記されるほうが良いと思います。
35
+
36
+ 現在のコードにも average = sum / 8.0; のように 8 が残っています。
37
+ また、コードの中に /2 がたくさんあります。
38
+ 最初に int n = args.length / 2; として、その n を使うとコードが見やすくなります。
39
+ また、小数点以下の文字数を指定するのには printf を使うと簡単です。
40
+ ```Java
41
+ package hello;
42
+
43
+ public class Seiseki2 {
44
+
45
+ public static void main(String[] args) {
46
+
47
+ int n = args.length / 2;
48
+ String names[] = new String[n];
49
+ double score[][] = new double[2][n];
50
+
51
+ double sum = 0, j = 0;
52
+ for (int i = 0; i < n; i++) {
53
+ names[i] = args[j++];
54
+ score[0][i] = Double.parseDouble(args[j++]);
55
+ sum += score[0][i];
56
+ }
57
+ double average = sum / n;
58
+
59
+ double ssum = 0;
60
+ for (int i = 0; i < n; i++)
61
+ ssum += sqr(score[0][i] - average);
62
+
63
+ double sd = Math.sqrt(ssum / n);
64
+
65
+ for (int i = 0; i < n; i++)
66
+ score[1][i] = 50 + 10 * (score[0][i] - average) / sd;
67
+
68
+ System.out.printf("Average = %.1f\n", average);
69
+ System.out.printf("Standard Deviation = %.2f\n", sd);
70
+
71
+ for (int i = 0; i < n; i++)
72
+ System.out.printf("%-9s %3.0f %6.1f\n",
73
+ names[i], score[0][i], score[1][i]);
74
+ }
75
+
76
+ private static double sqr(double d) { return d * d; }
77
+ }
30
78
  ```

1

引数の読みコムを追加

2020/07/09 13:23

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -11,8 +11,15 @@
11
11
  double score[] = new double[n];
12
12
  double deval[] = new double[n];
13
13
 
14
+ double sum = 0;
14
- // ここで、平均、標準偏差、偏差値の計算
15
+ for (int i = 0, j = 0; i < n; i++) {
16
+ names[i] = args[j++];
17
+ score[i] = Double.parseDouble(args[j++]);
18
+ sum += score[i];
19
+ }
15
20
 
21
+ // ここで、平均、標準偏差、偏差値を計算
22
+
16
23
  System.out.printf("Average = %.1f\n", average);
17
24
  System.out.printf("Standard Deviation = %.2f\n", sd);
18
25