Enjoy an ad free experience by logging in. Not a member yet? Register.

Results 1 to 2 of 2
Thread: Need HElp Now, DUE Today

03212011, 07:56 PM #1
 Join Date
 Mar 2011
 Posts
 3
 Thanks
 1
 Thanked 0 Times in 0 Posts
Need HElp Now, DUE Today
Okay, So I was assigned a project for school.
It is to prompt the user to enter a fixed number of points, declare the max and min X values, then plug x into an equation for y and print it. I've been able to successfully do that.
Here my problem: I get this exact error
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at locZero.main(locZero.java:41)
This comes into play at line 41 when im trying to use if statements and another array to record where the y values change signs from pos to neg/vise versa.
Here is the code
Code:import java.util.Scanner; public class locZero{ public static void main(String[]args){ Scanner input= new Scanner(System.in); double minX, maxX; int numPoints; int numChange=0; System.out.print("Enter number of points: "); numPoints=input.nextInt(); System.out.print("Enter min x: "); minX=input.nextDouble(); System.out.print("Enter max x: "); maxX=input.nextDouble(); double [] x= new double[numPoints]; double [] y= new double[numPoints]; double [] change= new double[numPoints]; System.out.println("i"+"\t"+"x[i]"+"\t"+"y[i]"); for(int i=0;i<numPoints;i++){ System.out.print(i+"\t"); x[0]=minX; x[numPoints1]= maxX; x[i]=x[0]+i*((maxXminX)/(numPoints1)); y[i]=(((x[i])*(x[i])*(x[i]))(2*((x[i])*(x[i])))(5*x[i])+4); System.out.print(x[i]); System.out.print("\t"); System.out.print(y[i]); System.out.println(); for(i=0;i<=numPoints;i++){ if(y[i]>=0 && y[i+1]<0){ change[numChange]=i; numChange++; } else if(y[i]>0 && y[i+1]<=0){ change[numChange]=i; numChange++; } } } } }
03212011, 08:58 PM
#2
Your other loops only went to i < numPoints. With this loop, you are guaranteed to be 1 past the end of the array.Code:for(i=0;i<=numPoints;i++){ if(y[i]>=0 && y[i+1]<0){ change[numChange]=i; numChange++; } else if(y[i]>0 && y[i+1]<=0){
But then you make it worse:
How can you use i+1 if i is already at or past the maximum value for the array subscript??
An optimist sees the glass as half full.
A pessimist sees the glass as half empty.
A realist drinks it no matter how much there is.
Users who have thanked Old Pedant for this post:
Fot (03232011)