473,549 Members | 2,626 Online

User storing scores of 10 students in an array

3 New Member
Hello,

I hope someone can help me. I had to do the following assignment( i have most of it done just cant finish it off, question and source code below).

Question?
Write a Java program that asks the user to input the scores, as a percentage( e.g 87.4), of 10 students. The scores entered must be stored ina n array.

The programme must determine:

The lowest score and its equivalent grade (ie A,B,etc)
The highest " " " " "
The average score and its "

The bit i cant do is tie in the equivalent grade with the lowest highest and average score.

Code:
Expand|Select|Wrap|Line Numbers
1. //Arrayofscores.java
2. //This programme asks the user to enter 5 exam scores and store them in an array
3. import java.text.*;
4.
5. public class Arrayofscores
6. {
7.     public static void main(String args[])
8.     {
9.         int [] scores = new int[10];
10.         int smallest, highest,temp,total=0;
11.         double average =0.0;
12.
13.         //ask the user to enter 10 scores
14.         for (int i = 0;i<= scores.length-1;i++)
15.         {
16.         System.out.print("\n\nEnter Score " + (i+1) + ": ");
17.             scores[i] = UserInput.getInt();
18.         }
19.
20.             //find the lowest score
21.             smallest = scores[0];
22.
23.             for (int i = 1; i <= scores.length-1;i++)
24.             if (scores[i] < smallest)
25.                 smallest = scores[i];
26.
27.     System.out.println("\nThe lowest score is : " + smallest);
28.
29.             //find the highest score
30.             highest = scores[0];
31.
32.             for (int i = 1; i <= scores.length-1;i++)
33.             if (scores[i] > highest)
34.                 highest = scores[i];
35.
36.         System.out.println("\nThe highest score is : " + highest);
37.
38.                 //find the average score
39.             for (int i = 0; i<=scores.length-1;i++)
40.             total = total + scores[i];
41.
42.             average = total/10.0;
43.         System.out.println("\nThe average score is : " + average);
44.
45.             }
}

Any suggestions would be greatly appreciated!!
Mar 5 '08 #1
8 15252
1,216 Recognized Expert Top Contributor

This makes it easier for our Experts to read and understand it. Failing to do so creates extra work for the moderators, thus wasting resources, otherwise available to answer the members' questions.

Please use [code] tags in future.

MODERATOR
Mar 5 '08 #2
RedSon
5,000 Recognized Expert Expert
First I suggest you sort your array after your user enters the 10 elements. Then element [0] is your smallest and element [9] is your largest, then to find the average you add up each element 0 through 9 and divide by the number of elements 10. After that when you output all you need to do is determine which letter grade corresponds to what value.

This should be fairly easy to work out, no?
Mar 5 '08 #3
d24706
3 New Member
Im still struggling to figure out the last piece, what i have come up with since and i think im getting on the right track is;

Expand|Select|Wrap|Line Numbers
2.
3.             {
5.
6.             if (score > 90)
8.             else if (score > 75)
10.
12.
14.
Mar 5 '08 #4
RedSon
5,000 Recognized Expert Expert
Im still struggling to figure out the last piece, what i have come up with since and i think im getting on the right track is;

Expand|Select|Wrap|Line Numbers
2.
3.             {
5.
6.             if (score > 90)
8.             else if (score > 75)
10.
12.
14.
why are you making a recursive call? And why do you think getGrade(highes t) will work? Have you defined a getGrade method that takes an argument?
Mar 5 '08 #5
d24706
3 New Member
sorry,im lost,looked over my notes and i just cant figure out methods,can someone tell me what the code should look like to get this to work.
Mar 5 '08 #6
RedSon
5,000 Recognized Expert Expert
sorry,im lost,looked over my notes and i just cant figure out methods,can someone tell me what the code should look like to get this to work.
If you have:
Expand|Select|Wrap|Line Numbers
1. public static void main(String[] args)
2. {
3.    int a;
4.    int b;
5.
6.    int c = addTogether(a, b);
7. }
What would the method signature be for addTogether?
Mar 6 '08 #7
664 Recognized Expert Contributor
Im still struggling to figure out the last piece, what i have come up with since and i think im getting on the right track is;

Expand|Select|Wrap|Line Numbers
2.
3.             {
5.
6.             if (score > 90)
8.             else if (score > 75)
10.
12.
14.

One could use two arrays which must be of the same length do get a letter grade. So if someone enter 90 the result would be an A.

Mar 6 '08 #8
1,216 Recognized Expert Top Contributor
Im still struggling to figure out the last piece, what i have come up with since and i think im getting on the right track is;

Expand|Select|Wrap|Line Numbers
2.
3.             {
5.
6.             if (score > 90)
8.             else if (score > 75)
10.
12.