回答編集履歴

2

コードの追加

2020/07/09 13:23

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -57,3 +57,99 @@
57
57
  }
58
58
 
59
59
  ```
60
+
61
+ **追記**
62
+
63
+ もう解決済みですか?
64
+
65
+ 質問のコードをどんどん修正すると、回答の指摘が何のことかわからなくなるので
66
+
67
+ 修正コードは追記されるほうが良いと思います。
68
+
69
+
70
+
71
+ 現在のコードにも average = sum / 8.0; のように 8 が残っています。
72
+
73
+ また、コードの中に /2 がたくさんあります。
74
+
75
+ 最初に int n = args.length / 2; として、その n を使うとコードが見やすくなります。
76
+
77
+ また、小数点以下の文字数を指定するのには printf を使うと簡単です。
78
+
79
+ ```Java
80
+
81
+ package hello;
82
+
83
+
84
+
85
+ public class Seiseki2 {
86
+
87
+
88
+
89
+ public static void main(String[] args) {
90
+
91
+
92
+
93
+ int n = args.length / 2;
94
+
95
+ String names[] = new String[n];
96
+
97
+ double score[][] = new double[2][n];
98
+
99
+
100
+
101
+ double sum = 0, j = 0;
102
+
103
+ for (int i = 0; i < n; i++) {
104
+
105
+ names[i] = args[j++];
106
+
107
+ score[0][i] = Double.parseDouble(args[j++]);
108
+
109
+ sum += score[0][i];
110
+
111
+ }
112
+
113
+ double average = sum / n;
114
+
115
+
116
+
117
+ double ssum = 0;
118
+
119
+ for (int i = 0; i < n; i++)
120
+
121
+ ssum += sqr(score[0][i] - average);
122
+
123
+
124
+
125
+ double sd = Math.sqrt(ssum / n);
126
+
127
+
128
+
129
+ for (int i = 0; i < n; i++)
130
+
131
+ score[1][i] = 50 + 10 * (score[0][i] - average) / sd;
132
+
133
+
134
+
135
+ System.out.printf("Average = %.1f\n", average);
136
+
137
+ System.out.printf("Standard Deviation = %.2f\n", sd);
138
+
139
+
140
+
141
+ for (int i = 0; i < n; i++)
142
+
143
+ System.out.printf("%-9s %3.0f %6.1f\n",
144
+
145
+ names[i], score[0][i], score[1][i]);
146
+
147
+ }
148
+
149
+
150
+
151
+ private static double sqr(double d) { return d * d; }
152
+
153
+ }
154
+
155
+ ```

1

引数の読みコムを追加

2020/07/09 13:23

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -24,7 +24,21 @@
24
24
 
25
25
 
26
26
 
27
+ double sum = 0;
28
+
29
+ for (int i = 0, j = 0; i < n; i++) {
30
+
31
+ names[i] = args[j++];
32
+
33
+ score[i] = Double.parseDouble(args[j++]);
34
+
35
+ sum += score[i];
36
+
37
+ }
38
+
39
+
40
+
27
- // ここで、平均、標準偏差、偏差値計算
41
+ // ここで、平均、標準偏差、偏差値計算
28
42
 
29
43
 
30
44