So ive been trying to get an average of this array needed, and I seem to be having trouble with it. So far, my current code just adds the numbers up, but doesnt really average them out at all:

``````import java.util.Scanner;
import java.util.Arrays;

public class Grades {

public static void main (String[] args)
{
double result = 0;
Scanner scan = new Scanner(System.in);

float[] grades = new float[100];

for (int i = 0; i < grades.length; i++) {
System.out.print("Enter a grade between 0.0 - 100.0 (enter -1 to quit): ");
grades[i] = scan.nextFloat();
if(grades[i] == -1)break;
result = result + grades[i];

}
System.out.println("Average of Grades: " + result / grades.length);

}
}``````

and the result is as follows:

Enter a grade between 0.0 - 100.0 (enter -1 to quit): 30.0
Enter a grade between 0.0 - 100.0 (enter -1 to quit): 50.0
Enter a grade between 0.0 - 100.0 (enter -1 to quit): 60.0
Enter a grade between 0.0 - 100.0 (enter -1 to quit): -1
Average of Grades: 1.4

any help would be appreciated.

You are dividing by the length of the grades array, but not all of those elements have a value. You need to divide by the actual number of entries the user has added.

How would I go about doing that? (sorry, noobie programmer)

Seems like counting them might be useful?

I mean is there a way to count the number of grades entered? I can enter however many I want up to 100, but im clueless on how to get it to see the amount of grades that were entered.

30 + 50 + 60 = 140
140 / 100 (the number of elements in your array) = 1.4
Keep track of how many grades are being entered.
Line 12: int count = 0;
Line 18: count++;
Line 20: result / count

> im clueless on how to get it to see the amount of grades that were entered
Seems like a fairly simple task for a variable.

Edit: Ah, well so much for letting you see the solution for yourself, since hfx642 has decided to just hand you a fix.

Define an int as a counter, then add one to a counter every time a new number is entered. Look at about line 16 to do this

``````    double[] grades = new double[100];

System.out.print("Enter a grade between 0.0 - 100.0 (enter -1 to quit): ");
System.out.println();

double sum = 0;
double ave = 0;

for (int i = 0; i < grades.length; i++)
{           grades[i] = input.nextDouble();

if(grades[i] == -1)
{
break;
}

sum = sum + grades[i];
ave = sum / (i+1);
}

System.out.println("The Average the of Grades: " + ave);
``````
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.