質問

(9)の数字の配列を平方根にしてから印刷しようとしていますが、結果は1つだけで戻ってきます。助けてくれてありがとう。わかりました、これがこれまでの私のひどいコードです。それをメソッドに渡そうとしています。

public static void main ( String args[] )
{ 
 double[] nums  = {126, 12.939, 795, 320.16,
             110, 34.7676, 7773, 67, 567, 323};

System.out.println ("Square root is " +square);
square(nums);
} 

public static double square (double [] array) {
double result;
for( double i = 0; i < array.length ; i++ )
  result = Math.sqrt(array[i]);

return result;
 }
}
役に立ちましたか?

解決

あなたは単一の変数しか持っていません result 正方形の根を保存するために上書きされ、最終的には最新の平方根のみが含まれます。の平方根が必要な場合 各要素 配列内で、結果を配列にも保存する必要があります。

public static double[] square (double [] array) {
  double[] result = new double[array.length];
  for(int i = 0; i < array.length ; i++ )
    result[i] = Math.sqrt(array[i]);

  return result;
}

次に、このような結果を1つずつ印刷できます。

public static void main ( String args[] )
{ 
  double[] nums  = {126, 12.939, 795, 320.16,
             110, 34.7676, 7773, 67, 567, 323};
  double[] squares = square(nums);

  for(int i = 0; i < nums.length ; i++ )
    System.out.println ("Square root of " + nums[i] + " is " + squares[i]);
}

アップデート: そして、私のマシンでの結果は、予想通り、次のとおりです。

Square root of 126.0 is 11.224972160321824
Square root of 12.939 is 3.597082150855051
Square root of 795.0 is 28.19574435974337
Square root of 320.16 is 17.893015397076034
Square root of 110.0 is 10.488088481701515
Square root of 34.7676 is 5.896405684821898
Square root of 7773.0 is 88.16461875378354
Square root of 67.0 is 8.18535277187245
Square root of 567.0 is 23.811761799581316
Square root of 323.0 is 17.97220075561143

他のヒント

配列内のすべての要素の平方根を印刷する場合は、同じ方法で結果を反復して印刷する必要があります。何かのようなもの:

for (int i = 0 ;i < array.length; i++)
{
    System.out.println("The Square Root of " + array[i] + " is" + Math.sqrt(array[i]));
}

あなたがしている方法は次のとおりです。配列内の各番号について、その平方根を見つけて、それを変数の結果に保存します。すべての配列をループしたら、結果の値を返します。この場合、処理した最後の数の平方根になります。

言われたことに加えて...答えを印刷した後に関数を呼んでいるようです。あなたもそれを海岸に並べてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top