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[numPoints-1]= maxX;
x[i]=x[0]+i*((maxX-minX)/(numPoints-1));
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++;
}
}
}
}
}
please try to help me. I know the error means im using an array that does exist, but i dunno how i am.