此问题已经在这里有了答案:
[尝试解决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]);
}
}
}
这是因为Scanner.nextInt()
方法不会读取输入中的换行符。在输入字符串时使用