import java.util.*;
import java.lang.Math;
class StandardDeviation{
public static void main(String args[]){
ArrayList<Double> numbers = new ArrayList<Double>();
Scanner kb=new Scanner(System.in);
double in=kb.nextDouble();
while(in!=-1){
numbers.add(kb.nextDouble());
}
double avg = getAvg(numbers);
double stdD = getD(avg,numbers);// tells me these are incompatible types
System.out.printf("%f\n",stdD);
}
public static double getAvg(ArrayList<Double> numbers){
double sum = 0.0;
for (Double num : numbers){
sum+= num;
}
return sum/numbers.size();
}
public static void getD(double avg, ArrayList<Double> numbers){
ArrayList<Double> newSet = new ArrayList<Double>();
for (int i = 0; i < numbers.size(); i++){
newSet.add(Math.pow(numbers.get(i)-avg,2));
}
double total = 0.0;
for (Double num : newSet){
total += num;
}
double mean =(total/numbers.size());
return Math.sqrt(mean);
}
}
Im so tired and I got this far into this exercise, I'm not even sure if it prints out the correct answer but right now its telling me double stdD = getD(avg,numbers); that there are incompatible types, not sure what is incompatible Thanks in advance
getD
is void, it doesn't return a value. It's currently
public static void getD(double avg, ArrayList<Double> numbers){
but it should probably be
public static double getD(double avg, ArrayList<Double> numbers){