[英]Sort in ascending order three floating point numbers
import java.util.Scanner;
public class Crescente {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double primo = in.nextDouble();
double secondo = in.nextDouble();
double terzo = in.nextDouble();
if(primo > secondo && primo > terzo) {
if(secondo > terzo) {
System.out.println(primo+" "+secondo+" "+terzo);
}else {
System.out.println(primo+" "+terzo+" "+secondo);
}
}else if(secondo > primo && secondo > terzo) {
if(primo > terzo) {
System.out.println(secondo+" "+primo+" "+terzo);
}else {
System.out.println(secondo+" "+terzo+" "+primo);
}
}else if(terzo > primo && terzo > secondo) {
if(primo > secondo) {
System.out.println(terzo+" "+primo+" "+secondo);
}else {
System.out.println(terzo+" "+secondo+" "+primo);
}
}
in.close();
}
}
如果您輸入整數,我的程序可以工作,但是如果您輸入浮點數,它會給我這個錯誤:
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 poo.Crescente.main(Crescente.java:8)
我不知道為什么它會給我這個錯誤,因為我將nextDouble
用於所有都是double
的變量。 請幫忙。
看起來您的默認語言環境設置為LOCALE.ITALY
因為您來自意大利。 改成下面這樣
Scanner in = new Scanner(System.in);
in.useLocale(Locale.ENGLISH);
// rest of the code
通過分別切換Locale.ITALY
和Locale.ENGLISH
我能夠使用逗號分隔的數字 (4,2) 和十進制分隔的數字 (4.2) 運行程序。
從文檔:
useLocale(Locale locale)
將此掃描器的語言環境設置為指定的語言環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.