The near-complete program is given below.
import java.io.*;
import java.util.Scanner;
public class TestGroups
{
public static void main ( String[] args ) throws IOException
{
int value; // the value of the current integer
// Prompt for and open the input file
Scanner user = new Scanner( System.in );
System.out.print("File name? ");
String fileName = user.next().trim();
Scanner scan = new Scanner( new File(fileName) );
// Group "A"
int sizeA; // the number of students in group "A"
int sumA = 0; // the sum of scores for group "A"
sizeA = scan.nextInt();
int count = 0; // initialize count
while ( count < sizeA )
{
value = scan.nextInt();
sumA = sumA + value ; // add to the sum
count = count + 1; // increment the count
}
if ( sizeA > 0 )
System.out.println( "Group A average: " + ((double) sumA)/sizeA );
else
System.out.println( "Group A has no students" );
// Group "B"
. . . . more code will go here . . . .
scan.close();
}
}
The program fragment computes the average for group "A".
The average is computed using double precision floating point,
even though the two quantities involved are both of type int.
To do this,
a type cast is used to convert sumA into a double so
that the division is floating point division, not integer division.
If you were writing this program on your own, what would be a wise thing to do at this point?