Как получить несколько входных данных от пользователя, используя 2D массив в JAVA? - PullRequest
1 голос
/ 05 февраля 2020

При завершении задачи у меня возникла проблема, когда я получаю ошибку времени выполнения всякий раз, когда пользователь дает более 3 входных данных. Пример строки из 5 входов приведен ниже

Ввод:

2 5

5 1

2 1

3 1

1 1

4 1

В первой строке «5» указано количество тестовых случаев.

Мой код запускается только первым 3 строки ввода, я надеюсь, что любой сможет помочь мне определить проблему в моем коде, чтобы она работала для любого числа строк ввода данных, заданных пользователем.

import java.util.Scanner;

public class Test{

public static void main(String[]args){

    Scanner robo=new Scanner(System.in);
    int num=robo.nextInt();
    int array [][]=new int [5][2];

    for(int i=0;i<array.length;i++){
      for(int j=0;j<array.length;j++){
        array[i][j]=robo.nextInt();
      }
    }

    int word=num;
    String result="";

    if(array[0][0]>num){
      System.out.print("NO");
    }else{
      for(int i=0;i<num1-1;i++){       
        word=array[i][1]+word;
        if(array[i+1][0]<word){
          result="YES";
        }else{
          result="NO";
        }
      }
      System.out.println(result);
    }
  }
}

1 Ответ

0 голосов
/ 05 февраля 2020

Я думаю, что вижу вашу проблему:

В этом l oop:

for(int i=0;i<array.length;i++){

  for(int j=0;j<array.length;j++){

    array[i][j]=robo.nextInt();
  }

}

i работает от 0 до 4 и j ТАКЖЕ работает от 0 до 4 потому что длина вашего массива равна 5, даже если каждая из 5 записей массива является массивом с размером 2. Тем не менее array.length «внешнего» массива равно 5. И поэтому array[i][j] сгенерирует исключение, как только j становится равным 2 или больше, потому что каждый из внутренних массивов имеет только 2 элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...