'Calculate the average for user's input
I want to calculate the average for the user's input but I am not sure how to add up the grades since its a while loop and the user can keep entering grades. I also don't want to count the zero to exit the loop as part of the average.
public static void main(String[] args){
Scanner input = new Scanner( System.in );
{
int grade = 0;
int counter = 0;
System.out.print("Enter grade or zero to quit(1-100):");
grade= input.nextInt();
while(grade>0)
{
if (grade >= 90)
System.out.println("A");
else if (grade >= 80)
System.out.println("B");
else if (grade >= 70)
System.out.println("C");
else if (grade >= 60)
System.out.println("D");
else
{System.out.println("F");
}
counter+=1;
System.out.print("Enter grade or zero to quit(1-100):");
grade=input.nextInt();
}
I want to print one more line saying "The average of these (number of grades) Grades is(average)"
Solution 1:[1]
Just keep a sum of all the grades, and divide by the count.
public static void main(String[] args){
Scanner input = new Scanner( System.in );
int grade = 0;
int counter = 0;
int sum = 0;
while(grade>0) {
System.out.print("Enter grade or zero to quit(1-100):");
grade= input.nextInt();
sum += grade;
counter++;
float average = sum / counter;
if (grade >= 90) {
System.out.println("A");
}
else if (grade >= 80) {
System.out.println("B");
}
else if (grade >= 70) {
System.out.println("C");
}
else if (grade >= 60) {
System.out.println("D");
}
else {
System.out.println("F");
}
}
}
Solution 2:[2]
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int grade = 0;
int counter = 1;
int sum = 0;
float average = 0;
System.out.print("Enter grade or zero to quit(1-100):");
grade = input.nextInt();
if (grade > 0) {
counter = 1;
while (grade > 0) {
System.out.print("Enter grade or zero to quit(1-100):");
grade = input.nextInt();
sum += grade;
counter++;
average = sum / counter;
if (grade >= 90) {
System.out.println("A");
} else if (grade >= 80) {
System.out.println("B");
} else if (grade >= 70) {
System.out.println("C");
} else if (grade >= 60) {
System.out.println("D");
} else {
System.out.println("F");
}
}
}
System.out.println(average);
}
Solution 3:[3]
public static void main(String[] args){
Scanner input = new Scanner( System.in );
int grade = 0;
int counter = 0;
int sum = 0;
float average=0;
do{
System.out.print("Enter grade or zero to quit(1-100):");
grade= input.nextInt();
sum += grade;
counter++;
average = sum / counter;
if (grade >= 90) {
System.out.println("A");
}
else if (grade >= 80) {
System.out.println("B");
}
else if (grade >= 70) {
System.out.println("C");
}
else if (grade >= 60) {
System.out.println("D");
}
else {
System.out.println("F");
}
}while( grade > 0 );
System.out.println(average);
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | AgilePro |
| Solution 2 | Vlajic Stevan |
| Solution 3 |
