Программа Java не печатает ожидаемый результат для обращения массиваJAVA

Программисты JAVA общаются здесь
Anonymous
Программа Java не печатает ожидаемый результат для обращения массива

Сообщение Anonymous »

Я пытаюсь написать программу Java для обращения массива. Моя цель — взять входной массив и напечатать его в обратном порядке.
Если входные данные:

1 2 3 4 5
Ожидаемый результат:

5 4 3 2 1
Фактический результат
Программа печатает неверные значения или иногда повторяет элементы.
Что я могу сделать? пробовал
Я использовал цикл для перебора массива с конца, но думаю, что моя логика неверна.

Код: Выделить всё

import java.util.Scanner;

public class ReverseArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter number of elements: ");
int n = sc.nextInt();
int arr[] = new int[n];
System.out.println("Enter elements:");
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
// Reversing array
for(int i = 0; i < n; i++) {
System.out.print(arr[n - i] + " ");
}
}
}
Проблема
Я получаю исключение ArrayIndexOutOfBoundsException.

Код: Выделить всё

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at ReverseArray.main(ReverseArray.java:17)

Вопрос
Что не так с моей логикой обращения массива? Как я могу исправить эту ошибку?

Вернуться в «JAVA»