Scanner输入数据类型的问题

问题遇到的现象和发生背景

在idea上可以运行,但是oj上运行错误

问题相关代码,请勿粘贴截图

import java.util.*;
public class Main{
public static void main (String args[])
{
System.out.println("Enter v0, v1, and t :");
Scanner cin= new Scanner(System.in);
double a;double b;double c;
a= cin.nextDouble();
b= cin.nextDouble();
c= cin.nextDouble();
double m=1.0;
m=(b-a)/c;
System.out.println("The average acceleration is" + String.format("%.4f", m));

}
}    
  
运行结果及报错内容

Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at Main.main(Main.java:8)
-time_space_table:-
/1930/sample.in:RE mem=18044k time=191ms

报错是说Scanner读入的字符与我们的变量类型不同导致,检查下题目标准输入的格式和类型

输入的方式不对,题目是要求怎么输入三个数的。

哪一个oj?你之前在上面做过其他的题吗?AC过吗?需要使用Scanner来进行输入吗?
我好久没有做了,怎么记得好像不需要Scanner输入呢

你输入的不是double类型值吧

InputMismatchException异常发生原因是接受类型不对,大概率是你在输入时有的不是double类型。


String    next()
查找并返回来自此扫描器的下一个完整标记。
String    next(Pattern pattern)
如果下一个标记与指定模式匹配,则返回下一个标记。
String    next(String pattern)
如果下一个标记与从指定字符串构造的模式匹配,则返回下一个标记。
BigDecimal    nextBigDecimal()
将输入信息的下一个标记扫描为一个 BigDecimal。
BigInteger    nextBigInteger()
将输入信息的下一个标记扫描为一个 BigInteger。
BigInteger    nextBigInteger(int radix)
将输入信息的下一个标记扫描为一个 BigInteger。
boolean    nextBoolean()
扫描解释为一个布尔值的输入标记并返回该值。
byte    nextByte()
将输入信息的下一个标记扫描为一个 bytebyte    nextByte(int radix)
将输入信息的下一个标记扫描为一个 bytedouble    nextDouble()
将输入信息的下一个标记扫描为一个 doublefloat    nextFloat()
将输入信息的下一个标记扫描为一个 floatint    nextInt()
将输入信息的下一个标记扫描为一个 intint    nextInt(int radix)
将输入信息的下一个标记扫描为一个 int。
String    nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
long    nextLong()
将输入信息的下一个标记扫描为一个 longlong    nextLong(int radix)
将输入信息的下一个标记扫描为一个 longshort    nextShort()
将输入信息的下一个标记扫描为一个 shortshort    nextShort(int radix)
将输入信息的下一个标记扫描为一个 short