运行我的JAVA程序时出现运行时错误[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

[尝试解决kattis练习“ abc”(https://kau.kattis.com/problems/abc)。程序在eclipse上在我的计算机上运行良好,但是由于某些原因,当尝试在线提交解决方案时出现“运行时错误”。有什么想法我应该改变吗?问题链接请参见链接。作为输入,程序需要3个整数,后跟3个字母。

public class ABC {

  public static void main(String[] args) {
    int[] list = {0, 0 ,0};
    char[] order = {0 ,0 ,0};
    int  i;

    Scanner ob = new Scanner(System.in);

    for(i=0; i<list.length; i++) 
    {
        int a = ob.nextInt();
         list[i] = a;
    }
    int n=list.length;

    for (i = 0; i < n-1; i++) {

        for (int j = 0; j < n-i-1; j++) {
            if (list[j] > list[j+1]) 
            { 

                int temp = list[j]; 
                list[j] = list[j+1]; 
                list[j+1] = temp; 
            } 
        }
    }
    String s = ob.nextLine();

    for(i=0; i<order.length; i++)
    {
        order[i] = s.charAt(i);
    }

    ob.close();

if(order[0] == 'A' && order[1]=='B')
{
    System.out.print(list[0]+" ");
    System.out.print(list[1]+" ");
    System.out.print(list[2]);
}
if(order[0] == 'A' && order[1]=='C')
{ 
    System.out.print(list[0]+" ");
    System.out.print(list[2]+" ");
    System.out.print(list[1]);
    }
if(order[0] == 'C' && order[1]=='B')
{
    System.out.print(list[2]+" ");
    System.out.print(list[1]+" ");
    System.out.print(list[0]);

}
if(order[0]=='C' && order[1]=='A')
{
    System.out.print(list[2]+" ");
    System.out.print(list[0]+" ");
    System.out.print(list[1]);
}

if(order[0] == 'B' && order[1]=='A')
{ 
    System.out.print(list[1]+" ");
    System.out.print(list[0]+" ");
    System.out.print(list[2]);

}
if(order[0] == 'B' && order[1]=='C')
{ 
    System.out.print(list[0]+" ");
    System.out.print(list[2]+" ");
    System.out.print(list[1]);
}
  }
}
java runtime-error
1个回答
0
投票

这是因为Scanner.nextInt()方法不会读取输入中的换行符。在输入字符串时使用

© www.soinside.com 2019 - 2024. All rights reserved.