# Cannot figure out what I am doing wrong. Help Needed.

Below is my code

import java.io.*;

public class Hw4Pr1{
public static void main(String[] args) throws IOException {
double[] numbers;

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

System.out.println("Enter some numbers to calculate the mean and the standart deviation :");

}

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

// Method for computing deviation of double values
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));
}

// Method for computing deviation of int values
public static double deviation(int[] 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));
}

// Method for computing the mean of double values
public static double mean(double[] x) {
double sum = 0;
for (int i = 0; i < x.length; i++) {
sum += x[i];
}

return sum / x.length;
}

// Method for computing the mean of int values
public static double mean(int[] x) {
double sum = 0;
for (int i = 0; i < x.length; i++) {
sum += x[i];
}

return sum / x.length;
}

--------------------Configuration: <Default>--------------------
E:\Program Files\Xinox Software\JCreatorV3 LE\MyProjects\Hw3Pr1\Hw4Pr1.java:14: ']' expected
^
E:\Program Files\Xinox Software\JCreatorV3 LE\MyProjects\Hw3Pr1\Hw4Pr1.java:24: 'class' or 'interface' expected
public static double deviation(double[] x) {
^
2 errors

Process completed.

Thank you
###### Who is Participating?

Commented:

should be:

you also need to initialise your array:

double[] numbers = new double[10];

0

Author Commented:
Thank you

I am still getting one error

public static double deviation(double[] x) {
^
1 error

Thanks
0

Commented:
move the closing  bracket before your deviation to the end of the class definition.

still looking for other error..
0

Commented:
move you methods *inside* the class definition
0

Commented:
import java.io.*;

public class Hw4Pr1{
public static void main(String[] args) throws IOException {
double[] numbers = new double[10];
for (int i = 0; i < numbers.length; i++) {

System.out.println("Enter some numbers to calculate the mean and the standart deviation :");

}

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

// Method for computing deviation of double values
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));
}

// Method for computing deviation of int values
public static double deviation(int[] 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));
}

// Method for computing the mean of double values
public static double mean(double[] x) {
double sum = 0;
for (int i = 0; i < x.length; i++) {
sum += x[i];
}

return sum / x.length;
}

// Method for computing the mean of int values
public static double mean(int[] x) {
double sum = 0;
for (int i = 0; i < x.length; i++) {
sum += x[i];
}

return sum / x.length;
}

}

compiled

0

Commented:
the other error has to do with your instantiation (or lack thereof) of the numbers variable.

instead of making a for loop to count all elts of the array in order to assign them in, (circular reference causing your problem) try to change that for loop to a while loop which will terminate when there is nothing left to read in from the file.

all other code should be fine as is..
0

Author Commented:
It's still not outputting the expected answers.
0

Commented:
try changing your main method to this...

public static void main(String[] args) throws IOException {
double[] numbers = new double[1024];
String [] data = dataString.split(" ");

for (int i=0;i<data.length;i++){
numbers[i]=Double.parseDouble(data[i]);
}

System.out.println("The mean is " + mean(numbers));
System.out.println("The standard deviation is " + deviation(numbers));
}
0

Commented:
oops.  hold on.  the problem with the outcome is in calculating x.length which is equal to data.length...

ill post back in a minute...
0

Commented:
ok got it.  first of all, you can drop the two tests for when you pass in integers.

since the main method parses input from string to double, you will always be giving doubles.

the problem with calculations is in the fact that arrays are not resizable and we have all been making the array too big, messing up the calculations.

anyway, ive compiled and run this version, and all is well.

check it...

import java.io.*;

public class Hw4Pr1{
public static void main(String[] args) throws IOException {
double [] numbers = new double[2];
String [] data = dataString.split(" ");

int j = determineSize(data);

for (int i=0;i<j;i++){
numbers[i]=Double.parseDouble(data[i]);
}

System.out.println("The mean of is " + mean(numbers));
System.out.println("The standard deviation is " + deviation(numbers));
}

public static int determineSize(String [] rawData){
int i=0;
int numberNonNull =0;
boolean isNotNull;
do{
if(rawData[i]!=null){
isNotNull = true;
numberNonNull += 1;
}else{isNotNull = false;}
i+=1;

}while(isNotNull==true && i<rawData.length);

return numberNonNull;
}

// Method for computing deviation of double values
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));
}

// Method for computing the mean of double values
public static double mean(double[] x) {
double sum = 0;
for (int i = 0; i < x.length; i++) {
sum += x[i];
}

return sum/x.length;
}

}
0

Commented:
CRAP.

sorry peoples.  i think i posted b4 a little prematurely. forgot to clean up my mess there. :D
ignore above postings and compile this.

import java.io.*;

public class Hw4Pr1{
public static void main(String[] args) throws IOException {
double [] numbers = new double[1024];
String [] data = dataString.split(" ");

int j = determineSize(data);

for (int i=0;i<j;i++){
numbers[i]=Double.parseDouble(data[i]);
}

System.out.println("The mean of is " + mean(numbers, j));
System.out.println("The standard deviation is " + deviation(numbers, j));
}

public static int determineSize(String [] rawData){
int i=0;
int numberNonNull =0;
boolean isNotNull;
do{
if(rawData[i]!=null){
isNotNull = true;
numberNonNull += 1;
}else{isNotNull = false;}
i+=1;

}while(isNotNull==true && i<rawData.length);

return numberNonNull;
}

// Method for computing deviation of double values
public static double deviation(double[] x, int j) {
double mean = mean(x, j);
double squareSum = 0;

for (int i = 0; i < x.length; i++) {
squareSum += Math.pow(x[i] - mean, 2);
}

return Math.sqrt((squareSum) / j);
}

// Method for computing the mean of double values
public static double mean(double[] x, int j) {
double sum = 0;
for (int i = 0; i < x.length; i++) {
sum += x[i];
}

return sum/j;
}

}
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.