Results 1 to 6 of 6
 04172011, 04:25 AM #1Member
 Join Date
 Apr 2011
 Posts
 3
 Rep Power
 0
Java assignment, need guidance ...
I'm incredibly new to writing Java code. For my assignment, I have to use arrays to calculate the sum, average, largest, and smallest of any number of test scores. In addition, I have to use a "for loop" to tally up the number of A'S, B'S, C'S, D'S, and F'S (ex. "The number of students with scores of 90100 (A) is 4", etc. for each letter grade) based on the test scores. All this has to be shown in a message box. I can calculate the sum, average, largest, and smallest parts of this assignment, but I can't get the latter half of the assignment done right. Instead of "The number of students with scores of 90100 (A) is (insert calculated number here)" showing up, I get "The number of students with scores of 90100 (A) is 0", and this happens for each letter grade I'm trying to determine. I'm not sure why the 0 is showing up. Here is my code:
import javax.swing.JOptionPane;
public class ArrayProject3 {
public static void main(String[] args) {
String response = JOptionPane.showInputDialog(null, "Number of scores:");
int number = Integer.parseInt(response);
int scores[] = new int[number];
for (int a = 0; a < number; a++) {
response = JOptionPane.showInputDialog(null, "Enter score " + (a+1));
scores[a] = Integer.parseInt(response);
}
int count = 0;
int gradeA = 0;
int gradeB = 0;
int gradeC = 0;
int gradeD = 0;
int gradeF = 0;
int sum = 0;
int largest = scores[0];
int smallest = scores[0];
for (int i = 0; i < scores.length; i++) {
sum = sum + scores[i];
if (scores[i] > largest) {
largest = scores[i];
}
if (scores[i] < smallest) {
smallest = scores[i];
}
if (scores[i] <= 90 && scores[i] >= 100){
gradeA = count++;}
if (scores[i] <= 80 && scores[i] >= 89){
gradeB = count++;}
if (scores[i] <= 70 && scores[i] >= 79){
gradeC = count++;}
if (scores[i] <= 60 && scores[i] >= 69){
gradeD = count++;}
if (scores[i] <= 60){
gradeF = count++;}
}
JOptionPane.showMessageDialog(null, "The sum is " + sum
+ "\nThe average is " + (sum / scores.length)
+ "\nThe largest is " + largest
+ "\nThe smallest is " + smallest
+ "\nThe number of students with scores of 90100 (A) " + gradeA
+ "\nThe number of students with scores of 8089 (B) " + gradeB
+ "\nThe number of students with scores of 7079 (C) " + gradeC
+ "\nThe number of students with scores of 6069 (D) " + gradeD
+ "\nThe number of students with scores below 60 (F) " + gradeF);
}
}

Look at your logic, logically. Ask yourself, is this ever going to be true?
Java Code:if (scores[i] <= 90 && scores[i] >= 100) {
Then look at this:
Java Code:gradeA = count++;
 04172011, 06:17 AM #3Member
 Join Date
 Apr 2011
 Posts
 3
 Rep Power
 0
Okay, thank you for explaining my mistake in the "for loop" part. I changed the "&&" to just "&". I'm still puzzled on how to tally the grades up, though. Creating the "int count" variable is, presently, the only way I know how to increment the gradeA, gradeB, etc. variables, and its not working.
 04172011, 06:42 AM #4
 Join Date
 Jan 2011
 Location
 Richmond, Virginia
 Posts
 3,068
 Blog Entries
 3
 Rep Power
 13
Changing from logical and to bitwise and is incorrect. You need to consider when a grade can simultaneously be less than 90 and greater than 100. Try thinking of one number that can meet that criteria.
Do you understand how the increment operator works? Each time you do
Java Code:gradeX = count++;
Last edited by sunde887; 04172011 at 06:46 AM.

 04172011, 06:44 PM #6Member
 Join Date
 Apr 2011
 Posts
 3
 Rep Power
 0
Okay, I got the program working! THANK YOU for your help sunde887. To summarize the corrections I made, in my "for loop", I replaced the "&&" with just "&". I also removed the "count" variable completely and incremented the gradeA, gradeB, etc. variables inside the "for loop" with "gradeA = gradeA + 1", etc. Here is the working code:
import javax.swing.JOptionPane;
public class ArrayProject3 {
public static void main(String[] args) {
String response = JOptionPane.showInputDialog(null, "Number of scores:");
int number = Integer.parseInt(response);
int scores[] = new int[number];
for (int a = 0; a < number; a++) {
response = JOptionPane.showInputDialog(null, "Enter score " + (a+1));
scores[a] = Integer.parseInt(response);
}
int gradeA = 0;
int gradeB = 0;
int gradeC = 0;
int gradeD = 0;
int gradeF = 0;
int sum = 0;
int largest = scores[0];
int smallest = scores[0];
for (int i = 0; i < scores.length; i++) {
sum = sum + scores[i];
if (scores[i] > largest) {
largest = scores[i];
}
if (scores[i] < smallest) {
smallest = scores[i];
}
if (scores[i] >= 90 & scores[i] <= 100){
gradeA = gradeA + 1;}
if (scores[i] <= 89 & scores[i] >= 80){
gradeB = gradeB + 1;}
if (scores[i] <= 79 & scores[i] >= 70){
gradeC = gradeC + 1;}
if (scores[i] <= 69 & scores[i] >= 60){
gradeD = gradeD + 1;}
if (scores[i] < 60){
gradeF = gradeF + 1;}}
JOptionPane.showMessageDialog(null, "The sum is " + sum
+ "\nThe average is " + (sum / scores.length)
+ "\nThe largest is " + largest
+ "\nThe smallest is " + smallest
+ "\nThe number of students with scores of 90100 (A) " + gradeA
+ "\nThe number of students with scores of 8089 (B) " + gradeB
+ "\nThe number of students with scores of 7079 (C) " + gradeC
+ "\nThe number of students with scores of 6069 (D) " + gradeD
+ "\nThe number of students with scores below 60 (F) " + gradeF);
}
}
Similar Threads

Project Guidance
By Catfather in forum Advanced JavaReplies: 2Last Post: 02282011, 06:36 AM 
Some Guidance
By bengregg in forum Java AppletsReplies: 15Last Post: 01112011, 11:04 AM 
newbie guidance.
By Bgreen7887 in forum New To JavaReplies: 28Last Post: 10172010, 11:31 PM 
Guidance for SCJP
By sairam in forum New To JavaReplies: 1Last Post: 06302010, 10:21 AM 
Guidance
By gizdev in forum New To JavaReplies: 5Last Post: 09072008, 08:14 PM
Bookmarks