Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayIndexOutofBounds阵列访问异常_Java_Arrays_Variable Length Array - Fatal编程技术网

Java ArrayIndexOutofBounds阵列访问异常

Java ArrayIndexOutofBounds阵列访问异常,java,arrays,variable-length-array,Java,Arrays,Variable Length Array,下午好!我必须创建2个数组。第一,如果用户写入0,则应创建一个随机数(-10;10),否则应使用输入的公式进行计数;第二个数组应首先写入数组1中位置数不均匀的元素,然后写入位置数为偶数的元素。所以基本上在数组中2 0-10个位置表示不均匀数,然后11-19个位置表示偶数。 但不幸的是,当我“运行”程序时,第二个数组有一个错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:索引20超出长度20的界限) intk; 系统输出打印(“K=

下午好!我必须创建2个数组。第一,如果用户写入0,则应创建一个随机数(-10;10),否则应使用输入的公式进行计数;第二个数组应首先写入数组1中位置数不均匀的元素,然后写入位置数为偶数的元素。所以基本上在数组中2 0-10个位置表示不均匀数,然后11-19个位置表示偶数。 但不幸的是,当我“运行”程序时,第二个数组有一个错误:

线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:索引20超出长度20的界限)

intk;
系统输出打印(“K=”);
if(sc.hasnetint())
K=sc.nextInt();
否则{
System.out.println(“错误(不是整数)”;
sc.close();
回来
}
双A[]=新双[20];
双B[]=新双[20];
System.out.println(“结果:”);
System.out.println(“A:”);
如果(K==0){
随机r=新随机();
对于do while循环中的(int i=0;i)

p=0 -> p is even, 'even' get incremented and become 12.
p=2 -> p is even, 'even' get incremented and become 13.
...
p=14 -> p is even, 'even' get incremented and become 19.
p=16 -> p is even, 'even' get incremented and become 20. <- game over!
你看到模式了吗

对于偶数
p
和奇数
p
新指数应分别为
10+(p/2)

    do { 
        if (p%2==0) { //p is even
            B[10+(p/2)]=A[p];
        }
        if (p%2!=0) { //p is odd
            B[(p/2)]=A[p];
        }
        p++;
    } while (p<20);
do{
如果(p%2==0){//p是偶数
B[10+(p/2)]=A[p];
}
如果(p%2!=0){//p是奇数
B[(p/2)]=A[p];
}
p++;

}(p进行以下更改时,代码将很好地运行

double B[]=新的double[21];

do
      {
         int z = p;
         if (z % 2 == 0)
         {
            B[even] = A[p];
            even++;
         }
         else
         {
            B[uneven] = A[p];
            uneven++;
         }
         p++;
      }
      while (p < 19);
do
      {
         int z = p;
         if (z % 2 == 0)
         {
            B[even] = A[p];
            even++;
         }
         else
         {
            B[uneven] = A[p];
            uneven++;
         }
         p++;
      }
      while (p < 19);
if (p % 2 == 0)