为啥我会得到这个错误的输出?

Posted

技术标签:

【中文标题】为啥我会得到这个错误的输出?【英文标题】:why am I getting this erroneous output?为什么我会得到这个错误的输出? 【发布时间】:2019-01-25 05:21:23 【问题描述】:

https://www.hackerrank.com/challenges/java-arraylist/probleminput

5

5 41 77 74 22 44

1 12

4 37 34 36 52

0

3 20 22 33

5

1 3

3 4

3 1

4 3

5 5

样本输出

74

52

37

错误!

错误!

 import java.io.*;
import java.util.*;

public class Solution 

public static void main(String[] args) 
    /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    ArrayList array[] = new ArrayList[n];
    for(int i = 0; i < n; ++i)
    
        ArrayList list = new ArrayList();
        int no = sc.nextInt();
        while(no != '\n')
        
             list.add(no);
             no = sc.nextInt(); 
        
        array[i] = list;
    

    int k = sc.nextInt();
    int l = sc.nextInt();
    System.out.println(array[k].get(l));



错误(标准错误) 线程“主”java.util.NoSuchElementException 中的异常

at java.util.Scanner.throwFor(Scanner.java:862)

at java.util.Scanner.next(Scanner.java:1485)

at java.util.Scanner.nextInt(Scanner.java:2117)

at java.util.Scanner.nextInt(Scanner.java:2076)

at Solution.main(Solution.java:18)

【问题讨论】:

你想通过这个程序达到什么目的? @NicholasK ive 给出了上一节中的演示 .. @LanaLightman 上面给出的链接不再起作用,你能用hackerrank的原始问题更新问题吗 【参考方案1】:

如果我正确理解了这个问题,它应该首先扫描 n 行并创建某种二维列表/数组,然后应该接受关于这个二维中位置 (x,y) 的问题将超出范围的对象覆盖为“错误!”。

import java.util.ArrayList;
import java.util.Scanner;

public class Solution 

    public static void main(String[] args) 
    /*
     * Enter your code here. Read input from STDIN. Print output to STDOUT.
     * Your class should be named Solution.
     */
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    sc.nextLine();
    ArrayList array[] = new ArrayList[n];
    for (int i = 0; i < n; i++) 
        ArrayList list = new ArrayList();
        Scanner linSc = new Scanner(sc.nextLine());
        while (linSc.hasNextInt()) 
            list.add(linSc.nextInt());
        
        linSc.close();
        array[i] = list;
    
    n = sc.nextInt();
    for (int i = 0; i < n; i++) 
        int k = sc.nextInt();
        int l = sc.nextInt();
            try 
                System.out.println(array[k - 1].get(l));
             catch (IndexOutOfBoundsException e) 
                System.out.println("ERROR!");
            
        
        sc.close();
    

【讨论】:

以上是关于为啥我会得到这个错误的输出?的主要内容,如果未能解决你的问题,请参考以下文章

错误:WatchActivity 无法解析为一种类型,为啥我会得到这个? [复制]

春季安全 |为啥当它们有效时我会得到错误的凭据?

为啥我会从 VBA Select Case 获得随机/错误的输出?

为啥我会得到不同形状的张量错误?

为啥我会收到此 Webpack 加载程序错误?

FFT 和加速度计数据:为啥我会得到这个输出?