Please look at the code below and follow with my questions:
import java.util.Scanner;
public class CaseGrade {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
String name = null ;
int grade = 0;
String exellent = "Exellent :";
String veryGgood ="Very Good :";
String good="Good :";
String pass ="Pass :";
String fail = "Fail :";
String maxi = null;
String mini =null ;
String upAvg ="" ;
String dwnAvg ="" ;
int max = 0;
int min = 100;
int sum = 0;
int avg ;
int counter =0;
boolean repeat ;
while (repeat =true)
{
System.out.println("Enter Name : ");
name = input.next();
System.out.println("Enter Grade : ");
grade = input.nextInt();
switch (grade/10)
{
case 100:
case 9 :
exellent += "\n"+ name + "\t" +grade+"\n";
break;
case 8 :
veryGgood += "\n" + name + "\t" +grade +"\n";
break ;
case 7 :
good += "\n" + name + "\t" +grade +"\n";
break;
case 6:
case 5:
pass += "\n" + name + "\t" +grade +"\n";
break;
default:
fail +="\n" + name + "\t" +grade +"\n";
break;
}
sum = sum + grade;
counter = counter + 1;
if (grade > max)
{
max = grade;
maxi=name;
}
if (grade < min)
{
min = grade;
mini= name;
}
if (grade == -1 )
{
//avg= (sum+1) /(counter-1);
avg= sum /counter;
if (grade >=avg)
{
upAvg += name+"\n";
}
if(grade<avg)
{
dwnAvg += name +"\n";
}
System.out.println(" result = :");
System.out.println(exellent +"\n"+ veryGgood +"\n"+ good +"\n"+ pass +"\n"+fail);
System.out.println("maximum = "+ max +"\t" +maxi);
System.out.println("minimum = "+ min +"\t"+mini);
System.out.println("\tAverage = " +avg);
System.out.println("counter : "+counter);
System.out.println("sum :"+sum);
System.out.println("ubove avg\n"+upAvg +"\n");
System.out.println("under avg\n"+dwnAvg+"\n");
System.exit(0);
}
}
}
}
i need to Print the names with the highest average and less than the average