2048290348089 - 2 years ago 68

Java Question

This is one of the first assignments I have used with Arrays so I am not exactly sure how this works or if I am doing it correctly. Here is the program currently

`public static void main(String[] args) {`

Scanner s = new Scanner(System.in);

double[] numbers = new double[9];

System.out.print("Enter 10 numbers: ");

for (int i = 0; i < 10; i++){

double number = s.nextDouble();

}

System.out.println("The mean is " + mean(numbers));

System.out.println("The standard deviation is : " + deviation(numbers));

}

public static double deviation(double[] x) {

double mean = mean(x);

double squareSum = 0;

for (int i = 0; i < x.length; i++) {

squareSum += Math.pow(x[i] - mean, 2);

}

return Math.sqrt((squareSum) / (x.length - 1));

}

public static double mean(double[] x) {

double sum = 0;

for (int i = 0; i < x.length; i++) {

sum += x[i];

}

return sum / x.length;

}

}

What have I done wrong, the output is coming out as 0.0 for both mean and standard deviation

Recommended for you: Get network issues from **WhatsUp Gold**. **Not end users.**

Answer Source

If you want to put 10 double values in array, you have to define the size of your array (number of elements in the array) to be 10:

`double[] numbers = new double[10];`

how do I put the inputs with the s.nextDouble go into the array?

Instead of

```
for (int i = 0; i < 10; i++){
double number = s.nextDouble();
}
```

assign the the double values you read into the array as:

```
for (int i = 0; i < numbers.length; i++){
numbers[i] = s.nextDouble();
}
```

And here you can read about Java arrays.

Recommended from our users: **Dynamic Network Monitoring from WhatsUp Gold from IPSwitch**. ** Free Download**