Write a program that read integer exam scored in the range 0 to 100 and displaye
ID: 3543592 • Letter: W
Question
Write a program that read integer exam scored in the range 0 to 100 and displayes the Total number of scores, total number of each letter grade, percente of total for each letter grade, range of scores: lowest to highest, and average score
this is what I got so far but is not working
import java.util.Scanner;
public class project7
{
public static void main(String[] args)
{
System.out.println ("This program computes the totalnumber of scores");
System.out.println("Total number of each letter grade");
System.out.println("Precentage of total for each letter grade");
System.out.println("Range of scores: lowest and highest");
System.out.println("Average Score");
double grade, percentA= 0.0, percentB= 0.0, percentC=0.0, percentD= 0.0, percentF=0.0, sum = 0.0, average,
smallest=0, largest=0;
int numberOfGrades = 0, A=0, B=0, C=0, D=0, F=0;
String answer;
Scanner keyboard = new Scanner(System.in);
do
{
System.out.println();
System.out.println("Enter all the scores to be averaged.");
System.out.println("Enter a negative number after you have entered all the scores.");
grade = keyboard.nextDouble();
while (grade >= 0)
{
if (grade >=90 && grade<= 100)
{
A++;
}
else if (grade >=80 && grade <=89)
{
B++;
}
else if (grade >=70 && grade <= 79)
{
C++;
}
else if (grade >=60 && grade <= 69)
{
D++;
}
else if (grade >= 0 && grade <=59)
{
F++;
}
sum = sum + grade;
numberOfGrades ++;
}
System.out.println("The total number of grade entered is " + numberOfGrades);
System.out.println("Number of A's = " + A);
System.out.println("Number of B's = " + B);
System.out.println("Number of C's = " + C);
System.out.println("Number of D's = " + D);
System.out.println("Number of F's = " + F);
percentA = (A/numberOfGrades) * 100;
System.out.println("The percent of A's = " + percentA + "%");
percentA = (B/numberOfGrades) * 100;
System.out.println("The percent of B's = " + percentB + "%");
percentA = (C/numberOfGrades) * 100;
System.out.println("The percent of C's = " + percentC + "%");
percentA = (D/numberOfGrades) * 100;
System.out.println("The percent of D's = " + percentD + "%");
percentA = (F/numberOfGrades) * 100;
System.out.println("The percent of F's = " + percentF + "%");
if (grade>=0 && grade<50)
smallest = grade;
if (grade>90 && grade <=100)
largest = grade;
System.out.println("The smalest number is " + smallest);
System.out.println("The largest number is " + largest);
System.out.println("The average is " + sum/numberOfGrades);
System.out.println("Want to do it for another exam");
System.out.println("Enter yes or no");
answer = keyboard.next();
} while (answer.equalsIgnoreCase("yes"));
}
}
Explanation / Answer
Hi ,
The only change you need to make is copy the grade = keyboard.nextDouble();
at the last line of the while loop.
I mean , at this location
sum = sum + grade;
numberOfGrades ++;
grade = keyboard.nextDouble(); // add here
}
Explaination for the issue:
The problem with your code was it was not reading the input multiple times. But if you keep it inside the loop, your code runs perfectly.
Hope it helps :D