2015-04-18 2 views
0

Я решаю проблемы в HackerEarth, и я не могу понять, почему моя программа работает правильно в моей командной строке и дает правильный результат, но при запуске на их редакторе кода это дает исключение java.util.NoSuchElementException.java.util.NoSuchElementException at java.util.Scanner

Я искал, но не смог его решить.

import java.util.Scanner; 

public class TestClass { 
    public static int[][] arr = null; 
    public static int[][] dp = null; 

    public static void main(String[] args) { 
     int N, M, T; 
     int min; 
     int count = 0; 
     Scanner scan = new Scanner(System.in); 

     N = scan.nextInt(); 
     M = scan.nextInt(); 

     arr = new int[N][M]; 
     dp = new int[N + 1][M + 1]; 

     for (int i = 0; i < N; ++i) { 
      for (int j = 0; j < M; ++j) { 
       arr[i][j] = scan.nextInt(); //line 26 
      } 
     } 

     for (int i = 0; i < M + 1; ++i) 
      dp[0][i] = 0; 

     for (int i = 0; i < N + 1; ++i) 
      dp[i][0] = 0; 

     for (int i = 1; i < N + 1; ++i) { 
      for (int j = 1; j < M + 1; ++j) { 
       if (arr[i - 1][j - 1] == 0) { 
        min = Math.min(dp[i - 1][j], Math.min(dp[i] 
         [j - 1], dp[i - 1][j - 1])); 
        dp[i][j] = min + 1; 
       } else 
        dp[i][j] = 0; 
      } 
     } 

     count = 0; 
     for (int i = 1; i < N + 1; ++i) { 
      for (int j = 1; j < M + 1; ++j) { 
       if (dp[i][j] != 0) 
        count += dp[i][j]; 
      } 
     } 
     System.out.println("" + count); 
    }//main 
}//class 

Исключение:

Exception in thread "main" java.util.NoSuchElementException 
    at java.util.Scanner.throwFor(Scanner.java:907) 
    at java.util.Scanner.next(Scanner.java:1530) 
    at java.util.Scanner.nextInt(Scanner.java:2160) 
    at java.util.Scanner.nextInt(Scanner.java:2119) 
    at TestClass.main(editor_trsource_1429355115_85417.java:26) 

ответ

3

Это означает, что вы не имеете данные со стандартного ввода и вы пытаетесь получить nextInt из того же. Вы, вероятно, следует проверить, если у вас есть данные для потребителя с использованием hasNextInt как:

if (scanner.hasNextInt()) { 
    //read nextInt(); 
} 
+0

Thanks.Problem с I ожидал 4 разных входа как 0 1 0 0 с пространством, разделяющим их, но они ожидают 4 разных ввода как 0100 без каких-либо пробелов. Вы знаете любой способ, как мы можем прочитать это внутри массива как 4 разных входа? – Cyclotron3x3

+0

вы можете прочитать как String, а затем использовать метод charAt для String для получения отдельных чисел. – SMA

+0

Да, я ... Спасибо. – Cyclotron3x3

-1

Если вы подаете решение по онлайн comiler в конкурсе программирования попробуйте обновить браузер.

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