Modify the Total program so that it shows the average, not the total of the inputs.
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
/**
This program reads a file with numbers, and writes the numbers to another
file, lined up in a column and followed by their average.
*/
public class Total
{
public static void main(String[] args) throws FileNotFoundException
{
// Prompt for the input and output file names
Scanner console = new Scanner(System.in);
System.out.print("Input file: ");
String inputFileName = console.next();
System.out.print("Output file: ");
String outputFileName = console.next();
// Construct the Scanner and PrintWriter objects for reading and writing
File inputFile = new File(inputFileName);
Scanner in = new Scanner(inputFile);
PrintWriter out = new PrintWriter(outputFileName);
// Read the input and write the output
int tc = 0;
double total = 0;
while (in.hasNextDouble())
{
double value = in.nextDouble();
out.printf("%17.2f\n", value);
total = total + value;
tc++;
}
double average = total / tc;
out.printf("Average:%10.2f\n",average);
in.close();
out.close();
}
}
1: Compare outputkeyboard_arrow_up
Output is nearly correct; but whitespace differs. See highlights below. Special character legend
Input
numbers.txt output.txt
Your file content
32.00 54.00 67.50 29.00 35.00 80.00 115.00 44.50 100.00 65.00 Average: 62.20
Expected file content
32.00 54.00 67.50 29.00 35.00 80.00 115.00 44.50 100.00 65.00 Average: 62.20