Valisha
asked on
Java arrays and calculations
I am trying to prompt the user to enter 26 integers(scores) and I want the integers to fall into the specefic category based on the score the user entered. I want the user to be prompt to enter an integer 26 times. For example If 6 of the 26 scores falls in the range1 category I would like the counter to be 6. For some reason when i ran it I got the wrong output data.
1 Student has a range below 24
0 Students have a range between 25-49
0 Students have a range between 50-74
and so on with the rest of all the values being 0
Whats wrong with my code?
1 Student has a range below 24
0 Students have a range between 25-49
0 Students have a range between 50-74
and so on with the rest of all the values being 0
Whats wrong with my code?
import java.io.*;
import java.util.*;
public class myArray
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
int[] item = new int[26];
int range1=0, range2=0, range3=0, range4=0, range5=0, range6=0, range7=0,range8=0;
int index;
System.out.println("Enter 26 numbers");
for (index =0; index < item.length; index++)
item[index] = console.nextInt();
if (item.length <=24)
range1++;
else if (item.length >= 25 && item.length <=49)
{
range2++;
}
else if (item.length >= 50 && item.length <=74)
{
range3++;
}
else if(item.length >= 75 && item.length <=99)
{
range4++;
}
else if(item.length >= 100 && item.length <=124)
{
range5++;
}
else if(item.length >= 125 && item.length <=149)
{
range6++;
}
else if(item.length >= 150 && item.length <=174)
{
range7++;
}
else if(item.length >= 175 && item.length <=200)
{
range8++;
}
System.out.println( range1 + "Students have scores that range in the 24 and below category");
System.out.println( range2 + "Students have scores that range between 25 and 49");
System.out.println( range3 + "Students have scores that range between 50 and 74");
System.out.println( range4 + "Students have scores that range between 75 and 99");
System.out.println( range5 + "Students have scores that range between 100 and 124");
System.out.println( range6 + "Students have scores that range between 125 and 149");
System.out.println( range7 + "Students have scores that range between 150 and 174");
System.out.println( range8 + "Students have scores that range between 175 and 200");
}
}
Hi,
you seem to mixing your lengths and elements, item.length, if I remember correctly returns the number of elements in an array, you probably want to change all your tests to something like (for example)
else if (item[index] >= 50 && item[index] <=74)
Cheers
you seem to mixing your lengths and elements, item.length, if I remember correctly returns the number of elements in an array, you probably want to change all your tests to something like (for example)
else if (item[index] >= 50 && item[index] <=74)
Cheers
ASKER
Hi again when I ran the program this time. I got in error message in the command window that says Exception thread "main" java.lang.ArrayIndexOutofb oundsExcep tion: 26.
press any key to continue
The println output didn't even display.
press any key to continue
The println output didn't even display.
Please post your code in its new state thanks
make sure you aren't incrementing index inside your loop
ASKER
import java.io.*;
import java.util.*;
public class myArray
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
int[] item = new int[26];
int range1=0, range2=0, range3=0, range4=0, range5=0, range6=0, range7=0,range8=0;
int index;
System.out.println("Enter 26 numbers:");
for (index =0; index < item.length; index++)
item[index] = console.nextInt();
if (item[index] <=24)
range1++;
else if (item[index] >= 25 && item[index] <=49)
{
range2++;
}
else if (item[index] >= 50 && item[index] <=74)
{
range3++;
}
else if(item[index] >= 75 && item[index] <=99)
{
range4++;
}
else if(item[index] >= 100 && item[index] <=124)
{
range5++;
}
else if(item[index] >= 125 && item[index] <=149)
{
range6++;
}
else if(item[index] >= 150 && item[index] <=174)
{
range7++;
}
else if(item[index] >= 175 && item[index] <=200)
{
range8++;
}
System.out.println( range1 + "Students have scores that range in the 24 and below category");
System.out.println( range2 + "Students have scores that range between 25 and 49");
System.out.println( range3 + "Students have scores that range between 50 and 74");
System.out.println( range4 + "Students have scores that range between 75 and 99");
System.out.println( range5 + "Students have scores that range between 100 and 124");
System.out.println( range6 + "Students have scores that range between 125 and 149");
System.out.println( range7 + "Students have scores that range between 150 and 174");
System.out.println( range8 + "Students have scores that range between 175 and 200");
}
}
import java.util.*;
public class myArray
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
int[] item = new int[26];
int range1=0, range2=0, range3=0, range4=0, range5=0, range6=0, range7=0,range8=0;
int index;
System.out.println("Enter 26 numbers:");
for (index =0; index < item.length; index++)
item[index] = console.nextInt();
if (item[index] <=24)
range1++;
else if (item[index] >= 25 && item[index] <=49)
{
range2++;
}
else if (item[index] >= 50 && item[index] <=74)
{
range3++;
}
else if(item[index] >= 75 && item[index] <=99)
{
range4++;
}
else if(item[index] >= 100 && item[index] <=124)
{
range5++;
}
else if(item[index] >= 125 && item[index] <=149)
{
range6++;
}
else if(item[index] >= 150 && item[index] <=174)
{
range7++;
}
else if(item[index] >= 175 && item[index] <=200)
{
range8++;
}
System.out.println( range1 + "Students have scores that range in the 24 and below category");
System.out.println( range2 + "Students have scores that range between 25 and 49");
System.out.println( range3 + "Students have scores that range between 50 and 74");
System.out.println( range4 + "Students have scores that range between 75 and 99");
System.out.println( range5 + "Students have scores that range between 100 and 124");
System.out.println( range6 + "Students have scores that range between 125 and 149");
System.out.println( range7 + "Students have scores that range between 150 and 174");
System.out.println( range8 + "Students have scores that range between 175 and 200");
}
}
need to include the if/else in your loop (by adding braces)
for (index =0; index < item.length; index++)
{
item[index] = console.nextInt();
if (item[index] <=24)
range1++;
else if (item[index] >= 25 && item[index] <=49)
{
range2++;
}
else if (item[index] >= 50 && item[index] <=74)
{
range3++;
}
else if(item[index] >= 75 && item[index] <=99)
{
range4++;
}
else if(item[index] >= 100 && item[index] <=124)
{
range5++;
}
else if(item[index] >= 125 && item[index] <=149)
{
range6++;
}
else if(item[index] >= 150 && item[index] <=174)
{
range7++;
}
else if(item[index] >= 175 && item[index] <=200)
{
range8++;
}
}
for (index =0; index < item.length; index++)
{
item[index] = console.nextInt();
if (item[index] <=24)
range1++;
else if (item[index] >= 25 && item[index] <=49)
{
range2++;
}
else if (item[index] >= 50 && item[index] <=74)
{
range3++;
}
else if(item[index] >= 75 && item[index] <=99)
{
range4++;
}
else if(item[index] >= 100 && item[index] <=124)
{
range5++;
}
else if(item[index] >= 125 && item[index] <=149)
{
range6++;
}
else if(item[index] >= 150 && item[index] <=174)
{
range7++;
}
else if(item[index] >= 175 && item[index] <=200)
{
range8++;
}
}
ASKER
The program is only accepting 1 number then the system.out.println executes instead of 26 numbers. How do I create a loop that goes through until all numbers are entered instead of just one number.
Actually, I don't see why a Java array is needed in this case. You can process each score right away when the user inputs, like this:
int N = 26;
int item = 0;
for (int i=0; i<N; i++) {
item = console.nextInt();
if (item <= 24)
range1++;
// etc...
}
int N = 26;
int item = 0;
for (int i=0; i<N; i++) {
item = console.nextInt();
if (item <= 24)
range1++;
// etc...
}
You need to change the item.length within the for loop to item[index]. The item.length will alway return 26 which is what you r result is in the current code.
> The program is only accepting 1 number then the system.out.println executes instead of 26 numbers. How do I create a loop that goes through until all numbers are entered instead of just one number.
by making the change i posted above
by making the change i posted above
import java.io.*;
import java.util.*;
public class myArray {
static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
int[] item = new int[26];
int range1 = 0, range2 = 0, range3 = 0, range4 = 0, range5 = 0, range6 = 0, range7 = 0, range8 = 0;
int index;
System.out.println("Enter 26 numbers");
for (index = 0; index < item.length; index++) {
item[index] = console.nextInt();
if (item[index] <= 24)
range1++;
else if (item[index] >= 25 && item[index] <= 49) {
range2++;
} else if (item[index] >= 50 && item[index] <= 74) {
range3++;
} else if (item[index] >= 75 && item[index] <= 99) {
range4++;
} else if (item[index] >= 100 && item[index] <= 124) {
range5++;
} else if (item[index] >= 125 && item[index] <= 149) {
range6++;
} else if (item[index] >= 150 && item[index] <= 174) {
range7++;
} else if (item[index] >= 175 && item[index] <= 200) {
range8++;
}
}
System.out
.println(range1
+ "Students have scores that range in the 24 and below category");
System.out.println(range2
+ "Students have scores that range between 25 and 49");
System.out.println(range3
+ "Students have scores that range between 50 and 74");
System.out.println(range4
+ "Students have scores that range between 75 and 99");
System.out.println(range5
+ "Students have scores that range between 100 and 124");
System.out.println(range6
+ "Students have scores that range between 125 and 149");
System.out.println(range7
+ "Students have scores that range between 150 and 174");
System.out.println(range8
+ "Students have scores that range between 175 and 200");
}
}
import java.util.*;
public class myArray {
static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
int[] item = new int[26];
int range1 = 0, range2 = 0, range3 = 0, range4 = 0, range5 = 0, range6 = 0, range7 = 0, range8 = 0;
int index;
System.out.println("Enter 26 numbers");
for (index = 0; index < item.length; index++) {
item[index] = console.nextInt();
if (item[index] <= 24)
range1++;
else if (item[index] >= 25 && item[index] <= 49) {
range2++;
} else if (item[index] >= 50 && item[index] <= 74) {
range3++;
} else if (item[index] >= 75 && item[index] <= 99) {
range4++;
} else if (item[index] >= 100 && item[index] <= 124) {
range5++;
} else if (item[index] >= 125 && item[index] <= 149) {
range6++;
} else if (item[index] >= 150 && item[index] <= 174) {
range7++;
} else if (item[index] >= 175 && item[index] <= 200) {
range8++;
}
}
System.out
.println(range1
+ "Students have scores that range in the 24 and below category");
System.out.println(range2
+ "Students have scores that range between 25 and 49");
System.out.println(range3
+ "Students have scores that range between 50 and 74");
System.out.println(range4
+ "Students have scores that range between 75 and 99");
System.out.println(range5
+ "Students have scores that range between 100 and 124");
System.out.println(range6
+ "Students have scores that range between 125 and 149");
System.out.println(range7
+ "Students have scores that range between 150 and 174");
System.out.println(range8
+ "Students have scores that range between 175 and 200");
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
you are comparing the wrong value, should be:
if (item[index] <=24)
same for all the other comparisons