creating program enables user enter integer n, reads n double values, , prints mean (average value) , sample standard deviation (square root of sum of squares of differences average, divided n - 1). far have code
import java.util.scanner; public class avgdevi { public static void main(string[] args) { scanner input = new scanner(system.in); double x; double sum = 0; double average = 0; double dev = 0; double var = 0; double sqrx = 0; int n = 0; { system.out.println("enter integer:"); x = input.nextint(); if (x == -1) { break; } sum += x; n++; average = sum / n; sqrx += math.pow(x-average,2); var = sqrx / (n-1); dev = math.sqrt(var); } while (x<= 0); system.out.println("average: " + average); system.out.println("deviation: " + dev); } }
test case:
5 1 2 3 4 5
currently getting output
enter integer: average: 5.0 deviation: nan
output should
enter integer: enter number: enter number: enter number: enter number: enter number: average value is: 3.0 standard deviation is: 1.58
i'm not 100% sure i'm doing wrong great :d !
you can use while loop instead of do-while loop, following:
public static void main(string[] args) { scanner input = new scanner(system.in); double y=-1; double sum = 0; double average = 0; double dev = 0; double var = 0; double sqrx = 0; int n = 0; system.out.println("enter integer:"); y = input.nextint(); double z=y; int i=0; double x[] = new double[(int)z]; while(y-->0){ x[i] = input.nextdouble(); sum += x[i]; i++; n++; average = sum / n; } i=0; while(z-->0){ sqrx += math.pow(x[i]-average,2); i++; } var = sqrx / (n-1); dev = math.sqrt(var); system.out.println("average: " + average); system.out.println("deviation: " + dev); }
Comments
Post a Comment