2017-01-09 3 views
-3

Может ли кто-нибудь найти ошибку в программе. Я хочу напечатать элементы массива обратным образом, я получаю ошибку после выполнения программы, кто-нибудь может мне помочь.?Ошибка при печати элементов массива в обратном порядке. Java

int i,n; 
Scanner in=new Scanner(System.in); 
System.out.print("Enter range- "); 
n=in.nextInt(); 
int ar[] = new int[n]; 
for(i=0;i<=n;i++) 
{ 
    i=in.nextInt(); 
    ar[i]=in.nextInt(); 
} 
for(i=n-1;i>0;i--) 
{ 
    System.out.print("Enter elements" +ar[i]); 
} 
+0

Что ошибка вы получаете? –

+0

Какая ошибка? Означает ли эта ошибка (или исключение) что-нибудь? Попробовали отладку? – NewUser

+0

В массиве размерности 'n' нет элемента' n'. Только до 'n-1'. – RealSkeptic

ответ

1

i ваша переменная цикла, не изменяет i в цикле (с пользовательским вводом). Кроме того, массивы начинаются с 0 (не 1). Так,

for(i=0;i<n;i++) 
{ 
    // i=in.nextInt(); 
    ar[i]=in.nextInt(); 
} 
System.out.println("Entered elements"); 
for(i=n-1;i>=0;i--) 
{ 
    System.out.print(ar[i] + " "); 
} 
System.out.println(); 
+0

, а условие первого цикла - 'i AxelH

0

у вас есть какая-то ошибка в вашей программе:

сначала вы не должны объявить i в начале программы только в течение цикла

секунды присвоить i значения для ввода данных пользователя в каждом итерация для цикла i=in.nextInt();

и вы положили на цикл i <= n, он назначит дополнительный элемент массиву более необходимого размера.

также в цикл, что печать значения массива в обратном порядке, он не будет печатать первое значение индекса массива, потому что вы кладете условию i > 0;

int n; 
Scanner in=new Scanner(System.in); 
System.out.print("Enter range- "); 
n=in.nextInt(); 
int ar[] = new int[n]; 
for(int i=0;i<n;i++) 
{ 
    ar[i]=in.nextInt(); 
} 
for(int i=n-1;i>=0;i--) 
{ 
    System.out.print("Enter elements" +ar[i]); 
} 
+0

, что нормально, я сделаю это – Matrix

Смежные вопросы