在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()
将输入信息的下一个标记扫描为一个 byte。
byte nextByte(int radix)
将输入信息的下一个标记扫描为一个 byte。
double nextDouble()
将输入信息的下一个标记扫描为一个 double。
float nextFloat()
将输入信息的下一个标记扫描为一个 float。
int nextInt()
将输入信息的下一个标记扫描为一个 int。
int nextInt(int radix)
将输入信息的下一个标记扫描为一个 int。
String nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
long nextLong()
将输入信息的下一个标记扫描为一个 long。
long nextLong(int radix)
将输入信息的下一个标记扫描为一个 long。
short nextShort()
将输入信息的下一个标记扫描为一个 short。
short nextShort(int radix)
将输入信息的下一个标记扫描为一个 short。