Java ArraysOutOfBoundException
我找不到这个方法的代码有什么问题。它应该生成一个1D双数组,包含随机数的元素,以及两个随机整数之间的随机值。我一直在设置ArrayIndexOutOfBoundExceptionJava ArraysOutOfBoundException,java,arrays,indexoutofboundsexception,Java,Arrays,Indexoutofboundsexception,我找不到这个方法的代码有什么问题。它应该生成一个1D双数组,包含随机数的元素,以及两个随机整数之间的随机值。我一直在设置ArrayIndexOutOfBoundException public class Array1DOperations { public static void main(String[] args) { int n=0; int min=0; int max=0; generate1D(n,min, max); } p
public class Array1DOperations {
public static void main(String[] args) {
int n=0; int min=0; int max=0;
generate1D(n,min, max);
}
public static double[] generate1D(int n, int min, int max){
n=(int)(Math.random()*10);
int x=(int)(Math.random()*10);
int y=(int)(Math.random()*10);
min=0;
max=0;
if (x>y){
x=max;
y=min;
} else if(y>x){
y=max;
x=min;
} else if(x==y){
x=min;
y+=(int)(Math.random()*10);
}
double[] a=new double[n];
for(int i=0; i<=n; i++){
double random=Math.random()*(max-min)+min;
a[i]=random;
}
return a;
}
}
公共类数组1操作{
公共静态void main(字符串[]args){
int n=0;int min=0;int max=0;
发电机1d(n、最小值、最大值);
}
公共静态双[]生成1d(整数n、整数min、整数max){
n=(int)(Math.random()*10);
int x=(int)(Math.random()*10);
int y=(int)(Math.random()*10);
最小值=0;
max=0;
如果(x>y){
x=最大值;
y=最小值;
}如果(y>x),则为else{
y=最大值;
x=最小值;
}else如果(x==y){
x=最小值;
y+=(int)(数学随机()*10);
}
双精度[]a=新双精度[n];
for(int i=0;ifor(int i=0;我认为它已编译,但现在所有元素的值都是0.0。@Batoul你的max
和min
都是零,试着把它改成一个范围,比如min=0
和max=100
@Batoul:如果你阅读你的代码,你应该能看到min
和max
总是零。还有x
>而y
变量从未被使用过。你到底想做什么?@Matti@J即使我删除了min=0,max=0,它仍然会给出0。0@Batoul检查generate1D
方法,将min
和max
再次设置为零。
for(int i=0; i<=n; i++){