2017-02-01 16 views
0

Я делал программу для приема чисел в двумерном массиве и находил наибольшее и минимальное число. Но когда я вхожу мю входы, он показывает ошибку во 2-ом, если заявление о том:Индекс массива из связанного исключения для максимальной и минимальной программы

«Индекс массива из связанного исключения»

import java.util.Scanner; 
public class DDA_MaxMin 
{ 
    public static void main(String args[]) 
    { 
     Scanner in = new Scanner(System.in); 
     int ar[][] = new int[4][4]; 
     int a,b,c=0,d=0; 
     for(a=0;a<4;a++) 
     { 
      for(b=0;b<4;b++) 
      { 
       System.out.println("Enter the numbers in the matrix "+a+" "+b); 
       ar[a][b]=in.nextInt(); 
      } 
     } 
     c=ar[0][0]; 
     d=ar[0][0]; 
     for(a=0;a<4;a++) 
     { 
      for(b=0;b<4;b++) 
      if(c>ar[a][b]) 
      c=ar[a][b]; 
      if(d<ar[a][b])   
      d=ar[a][b]; 
     } 
     System.out.println("The greatest number is "+d); 
     System.out.println("The smallest number is "+c); 
    } 
} 

ответ

4

для цикла без { будет действовать только для следующей строки или следующей инструкции.

for(b = 0; b < 4; b++) 
if(c>ar[a][b]) 
    c=ar[a][b] 

после этого b значения является 4.

и инструкция if после этого выходит из цикла for и исключает исключение.

Закрепите их в фигурных скобках.

for(a=0;a<4;a++) 
    { 
     for(b=0;b<4;b++){ 
     if(c>ar[a][b]) 
     c=ar[a][b]; 
     if(d<ar[a][b])   
     d=ar[a][b]; 
     } 
    } 
+0

И вы не должны объявлять a и b как int, когда используете его в цикле. – IQV

+0

Спасибо, он решил проблему – Arpit

1

Эй Ther вы пропустили фигурную скобку для второго для правильного кода будет

+1

'for (a = 0; a <4; a ++) { для (b = 0; b <4; b ++) { if (c> ar [a] [ b]) c = ar [a] [b]; , если (d

+0

Спасибо, что проблема решена – Arpit

1

проблема с вашим вторым for циклом, который имеет дело с переменной b. Отсутствуют брекеты. Измените его на:

for(a=0;a<4;a++) { 
    for(b=0;b<4;b++) { 
     if(c>ar[a][b]) 
      c=ar[a][b]; 
     if(d<ar[a][b])   
      d=ar[a][b]; 
    } 
} 
+0

Спасибо, что проблема решена – Arpit

1

`

public static void main(String args[]) 
    { 
     Scanner in = new Scanner(System.in); 
     int ar[][] = new int[4][4]; 
     int a,b,c=0,d=0; 
     for(a=0;a<4;a++) 
     { 
      for(b=0;b<4;b++) 
      { 
       System.out.println("Enter the numbers in the matrix "+a+" "+b); 
       ar[a][b]=in.nextInt(); 
      } 
     } 
     c=ar[0][0]; 
     d=ar[0][0]; 
     for(a=0;a<4;a++) 
     { 
      for(b=0;b<4;b++) 
      { 
      if(c>ar[a][b]) 
       c=ar[a][b]; 
      if(d<ar[a][b])   
       d=ar[a][b]; 
       } 
     } 
     System.out.println("The greatest number is "+d); 
     System.out.println("The smallest number is "+c); 
    }` 

Вы отсутствуют скобки в цикл, где вы пытаетесь найти наибольшее и наименьшее целое число.

+0

Спасибо, что проблема решена – Arpit

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

  • Нет связанных вопросов^_^