-4

为什么我会收到此错误?

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 3 at Vectores.main(Vectores.java:86)

我认为错误在这里:

System.out.println("El Número mayor es:"+NMay);
System.out.println("El Número menor es:"+NMen);
if (NumP>0){
    System.out.println("Hay"+" "+NumP+" "+"Números Pares");}
else { System.out.println("No hay números Pares"); }
if (NumI>0){
    System.out.println("Hay"+" "+NumI+" "+"Números Impares");}
else { System.out.println("No hay números Impares"); }

for (i=0;i<N-1;i++){
    for (j=i+1;j<N;j++){
        if(Num[i]>Num[j]){
            aux=Num[i];
            Num[i]=Num[j];
            Num[j]=aux;
        }
    }
}

System.out.print("El Vector ordenado es: ");
for (ord=0;ord<N;ord++){
    System.out.print(Num[ord]+", ");
}

for(Imp=1;Imp<=N;Imp=Imp+2){
    SumI=SumI+Num[Imp];
}

System.out.print("La Suma de las Posiciones Impares es:"+SumI);

我已经在此处提供了该文件。

4

1 回答 1

1
for(Imp=1;Imp<=N;Imp=Imp+2){
    SumI=SumI+Num[Imp];
}

当您的 Imp = N 时,您尝试访问非法的 Num[N],因为您的数组包含从 0 到 (N-1) 的索引。for 循环中的停止参数不能是 Imp<=N,因为它允许程序尝试访问 Num[N]。

于 2013-10-03T00:50:53.930 回答