1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
// File : flow-loops/MaxMinAvgIncome.java
// Purpose: Calculates income statistics. Illustrates:
// * Running calculation of minimum and maximum.
// * Initializing min and max values to largest/smallest
// possible values. Alternative is to use first value.
// * Reads until non-number / EOF.
// Alternative is read until sentinel value.
// * Average is total divided by number of values.
// Name : Fred Swartz - 2006-Dec-14 - Placed in public domain.
import java.util.*;
public class MaxMinAvgIncomeS {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//... These variables hold the max and min incomes.
double maxIncome = Double.MIN_VALUE; // Maximum income. //Note 1
double minIncome = Double.MAX_VALUE; // Minimum income.
//... These variables are used to compute the average.
int count = 0; // Number of input values.
double totalIncome = 0; // Total of all incomes.
//... Loop until negative number is entered.
System.out.println("Enter incomes. Terminate with EOF or non-number.");
while (input.hasNextDouble()) {
//... Get the next value.
double income = input.nextDouble();
//... Compare this value to max and min. Replace if needed.
if (income > maxIncome) {
maxIncome = income;
}
if (income < minIncome) {
minIncome = income;
}
//... Keep track of these values for average calculation.
count++; // Count the number of data points.
totalIncome += income; // Keep a running total.
}
//... Be sure user entered at least one data point.
if (count > 0) { //Note 2
//... Display statistics
double average = totalIncome / count;
System.out.println("Number of values = " + count);
System.out.println("Maximum = " + maxIncome);
System.out.println("Minimum = " + minIncome);
System.out.println("Average = " + average);
} else {
System.out.println("Error: You entered no data!");
}
}
}
|