68 lines
2.8 KiB
Java
68 lines
2.8 KiB
Java
/*
|
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
|
*/
|
|
package mp3_calebfontenot;
|
|
|
|
import java.util.Scanner;
|
|
|
|
/**
|
|
*
|
|
* @author caleb
|
|
*/
|
|
public class Stats {
|
|
|
|
public static void main(String[] args)
|
|
{
|
|
// Create scanner
|
|
Scanner input = new Scanner(System.in);
|
|
// Define variables
|
|
double mean = 0; //It's twice as mean
|
|
double inputSum = 0, numberOfTimesRun = 0, inputPow = 0, deviation = 0;
|
|
String userInput = "";
|
|
|
|
// Prompt for input
|
|
do {
|
|
System.out.println("Press Y/y to enter a series of numbers or Q/q to quit.");
|
|
System.out.println("Current sum: " + inputSum);
|
|
userInput = input.next();
|
|
if (userInput.toLowerCase().equals("y")) {
|
|
try {
|
|
do {
|
|
System.out.print("Please enter a series of numbers; Type '-1' to quit (no quotes, you doofus!): ");
|
|
userInput = input.next();
|
|
if (Double.parseDouble(userInput) != -1) {
|
|
inputSum += Double.parseDouble(userInput);
|
|
inputPow += Math.pow(Double.parseDouble(userInput), 2);
|
|
numberOfTimesRun++; // counter to store number of times we've added to input sum
|
|
}
|
|
if (numberOfTimesRun == 0) {
|
|
System.out.println("No numbers entered!");
|
|
}
|
|
System.out.println("Current sum: " + inputSum);
|
|
System.out.println("Input sum^2: " + inputPow);
|
|
} while (Double.parseDouble(userInput) != -1);
|
|
} catch (Exception e) {
|
|
System.out.println("Invalid input!");
|
|
}
|
|
|
|
} else {
|
|
System.out.println("Invalid input!");
|
|
}
|
|
// Calculate mean
|
|
mean = inputSum / numberOfTimesRun;
|
|
// Calculate deviation
|
|
if (numberOfTimesRun == 1) { // if the loop has only run once, don't bother calculating it, because the deviation is zero.
|
|
deviation = 0;
|
|
} else {
|
|
deviation = Math.sqrt((inputPow - (Math.pow(inputSum, 2) / numberOfTimesRun)) / (numberOfTimesRun - 1));
|
|
}
|
|
System.out.println();
|
|
System.out.println("The mean is: " + mean);
|
|
System.out.println("The deviation is: " + deviation);
|
|
|
|
}
|
|
while (!(userInput.toLowerCase().equals("q")));
|
|
}
|
|
}
|