0

So I'm trying to create a program that takes in the student's GPA and prints out if they are graduating at an honor's level, graduating, or not graduating. I have most of the code figured out, but I am trying to make it so that ALL of the input is first, and then it will go back and print out whether each student is graduating. But what I am getting is printing out the graduation status for each student immediately after the input for that student.

I'm getting this:

Enter the number of GPAs: 3
GPA #0: 3.99
Student #0: Summa Cum Laude
GPA #1: 3.1
Student #1: Graduating
GPA #2: 2
Student #2: Graduating

When I want this:

Enter the number of GPAs: 3
GPA #0: 3.99
GPA #1: 3.1
GPA #2: 2
Student #0: Summa Cum Laude
Student #1: Graduating
Student #2: Graduating

Here is my code:

    System.out.print("Enter the number of GPAs: ");
    int size = sc.nextInt();

    int array[] = new int[size];
    double gpa;


    for (int i = 0; i < size; i++) {
        System.out.print("GPA #"+ i + ": " );
        gpa = sc.nextDouble();

        if (gpa >= 3.90) {
            System.out.println("Student #" + i + ": Summa Cum Laude");
        } else if (gpa >= 3.70) {
            System.out.println("Student #" + i + ": Magna Cum Laude");
        } else if (gpa >= 3.50) {
            System.out.println("Student #" + i + ": Cum Laude");
        } else if (gpa >= 2.0) {
            System.out.println("Student #" + i + ": Graduating");
        } else {
            System.out.println("Student #" + i + ": Not graduating");
        }
    }


}}
1
  • Are you aware that the array you created is not being filled with values, ​​and this leads to the conclusion that the array is filled with 0 ,and in for loop you are not doing any action in the array. Commented Feb 28, 2021 at 19:40

2 Answers 2

1

First you need to fill the array with values GPA we declare an array of double

double array[] = new double[size];

We iterate through for loop and we ask user to enter GPA and we fill our array with those values

 for (int i = 0; i < size; i++) {
            System.out.print("GPA #" + i + ": ");
            gpa = sc.nextDouble();
            array[index++] = gpa;

        }

Now we have array with our values filled so what should we do know we print it by checking array values with our if statements.

for(int i=0;i<array.length;i++){
        if (array[i] >= 3.90) {
            System.out.println("Student #" + i + ": Summa Cum Laude");
        } else if (array[i] >= 3.70) {
            System.out.println("Student #" + i + ": Magna Cum Laude");
        } else if (array[i] >= 3.50) {
            System.out.println("Student #" + i + ": Cum Laude");
        } else if (array[i] >= 2.0) {
            System.out.println("Student #" + i + ": Graduating");
        } else {
            System.out.println("Student #" + i + ": Not graduating");
        }
    }

    }


}

FULL CODE

System.out.print("Enter the number of GPAs: ");
        int size = sc.nextInt();

        double array[] = new double[size];
        double gpa;
        int index = 0;

        for (int i = 0; i < size; i++) {
            System.out.print("GPA #" + i + ": ");
            gpa = sc.nextDouble();
            array[index++] = gpa;

        }


        for(int i=0;i<array.length;i++){
            if (array[i] >= 3.90) {
                System.out.println("Student #" + i + ": Summa Cum Laude");
            } else if (array[i] >= 3.70) {
                System.out.println("Student #" + i + ": Magna Cum Laude");
            } else if (array[i] >= 3.50) {
                System.out.println("Student #" + i + ": Cum Laude");
            } else if (array[i] >= 2.0) {
                System.out.println("Student #" + i + ": Graduating");
            } else {
                System.out.println("Student #" + i + ": Not graduating");
            }
        }

        }


    }
Sign up to request clarification or add additional context in comments.

Comments

0

It sounds like you want to have one list of GPA's immediately followed by another list of status'. If that is the case, then you have 2 separate lists, which will require 2 separate loops.

Make a loop that prints out your GPA's, then after that loop finishes, have another loop that prints out the status'. Also, you will need some way to store those values from the first loop. Maybe an array?

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.