Может ли кто-нибудь сказать мне, почему эта java-программа показывает исключение "индекс массива вне границ"?
Я получил выходные данные для этой программы, когда я ее запустил, но я получаю "исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: "ошибка во время выполнения.
Может кто-нибудь сказать мне, что пошло не так с моей программой?
ВОПРОС: Java-программа для печати массива в маятниковом расположении.
ТЕСТОВЫЙ ПРИМЕР
ВХОД:
5 //нет элементов в массиве
1
2
3
4
5
ВЫХОД:
1 2 3 4 5 //элементы в массиве
5 3 1 2 4 //маятниковое расположение массива
Что я уже пробовал:
import java.io.*; import java.util.*; import java.lang.*; public class TestClass { public static void main(String[] args)throws IOException { Scanner in = new Scanner(System.in); int n = in.nextInt(); int a[] = new int[n]; int b[] = new int[n]; for(int i =0; i<n; i++) { a[i] = in.nextInt(); } int t=0; for (int i=0; i<n ; i++) { for (int j =i+1; j<n; j++) { if (a[i] > a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } for(int i =0; i<n; i++) { System.out.print(a[i]+" "); } int mid = (n-1)/2; int x = 1, lim = n-1-mid; b[mid] = a[0]; for (int i=1; i<=lim; i++) { if((mid+i)<n) b[mid+i] = a[x++]; if((mid-1)>=0) b[mid-i] = a[x++]; } System.out.print("\n"); for (int i=0; i<n; i++) { System.out.print(b[i]+" "); }} }
ZurdoDev
Да, это означает, что вы пытаетесь получить доступ к индексу массива, а этот индекс не существует.
Например, a[8] не существует. Просто отладьте свой код и выясните, что вы делаете. На самом деле все очень просто.