WestCoast - 1 year ago 106
Java Question

# Expression must be an array, but ... to double

I am trying to practice writing some code and I can't solve my problem here.
I keep getting for "double sideA,sideB,sideC" that the expression must be an array, but it resolved to double.

``````public static double Calculate (double array1, double array2, double array3) {

double sideA = Math.sqrt(((array2[0]-array3[0])^2)+((array2[1]-array3[1])^2)+((array2[2]-array3[2])^2));
double a= Math.abs(sideA);
double sideB = Math.sqrt(((array1[0]-array3[0])^2)+((array1[1]-array3[1])^2)+((array1[2]-array3[2])^2));
double b= Math.abs(sideB);
double sideC = Math.sqrt(((array2[0]-array1[0])^2)+((array2[1]-array1[1])^2)+((array2[2]-array1[2])^2));
double c= Math.abs(sideC);
double s = ((0.5) * (a + b + c));
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
``````

`array1`, despite the name, is not actually an array as you've written the code right now. As you've written it, `array1` is just a single number.
``````public static double calculate(double[] array1, double[] array2, double[] array3) {
(Also, `^` does not do what you think it does; you would need `Math.pow`. On the other hand, you can just write `Math.hypot(array2[0] - array1[0], array2[1] - array1[1])`.)