2次元配列を持つため、行ごとに平均と標準偏差を計算し、適切な場所に格納する必要があります。私はコードを書いていますが、依然として私に間違った結果を与え、意図した値の正解を与えていません。誰かが私を助けることができる、おそらく私のコードは間違っているが、私はそれを修正する方法を知らない。ここでは、アレイ配列2次元の行ごとに平均と標準偏差を計算する
ですそしてここでコードそのものです:
public void analyze(String[][] arr) {
double res = 0.0;
double avg = 0;
double variance = 0;
double SD;
double Q = 0;
int index = 0;
for (int i = 1; i < (arr.length); i++) {
for (int j = 1; j < (arr[i].length); j++) {
res = res + Integer.parseInt(arr[i][j]);
}
avg = res/(arr[i].length - 1);
System.out.print("arr[i].length: " + arr[i].length + "\t");
System.out.println("Average is " + avg);
/*
double v = Q + (arr.length - avg) * (arr.length - avg);
variance = Q/(arr.length - 1);
SD = Math.sqrt(variance);
System.out.println("average is " + avg);
System.out.println("SD");
double nums[] = { 1.0, 2.3, 3.4, 4.5, 40.5 };
double result = 0.0;
for (i = 0; i < nums.length; i++) {
result = result + nums[i];
}
System.out.println("Average is =" + result/nums.length);
*/
}
}
実際には、最初の列と最初の行を数えないので、ループは1で始まります。なぜなら、整数ではなく文字列値なのでです。上記のコードでは、結果は配列の最初の行でのみ正しいので、残りは正しくありません。助けを見て、ありがとう – fobiacristy
O.K. - あなたが問題をよりよく説明したので、@Perceptionが少なくとも1つのバグを発見したことは明らかです.resを0.0にリセットする必要があります。また、 "未来を見て"、Double.parseDouble()を使用することをお勧めします。現在の問題には害はなく、将来はダブルスを扱うことができます。 – user949300
仲間、助けてくれてありがとう、私は正常に出力を正確に数えています:) – fobiacristy