所以我的代碼適用於所有測試用例,除了只有兩個整數時。 例如,如果用戶輸入:終止數爲-1,然後輸入1,2,然後再次輸入-1,最小數是1,1而不是1,2Java:兩個最小的數字helo
終止號碼只是結束序列/程序的方式。
public static void main(String[] args) {
double num;
double min = 0;
double min2 = 0;
System.out.println("Enter terminating value:");
int term = IO.readInt();
System.out.println("Enter next value:");
num = IO.readDouble();
if(num == term){
IO.reportBadInput();
main(args);
}
int count = 0;
min = num;
min2 = num;
do{
num = IO.readDouble();
if(num!= term && num < min) {
min2 = min;
min = num;
}
else if (num!= term && num < min2) {
min2 = num;
}
count++;
}while (num != term);
if(count < 2){
IO.reportBadInput();
main(args);
}
else{
IO.outputDoubleAnswer(min);
IO.outputDoubleAnswer(min2);
}
}
爲什麼要禁止第一輸入是結尾值,但第二個可以是任意值?你應該決定一致的行爲。要麼禁止或允許第一個和第二個輸入的終止值 – Paul
什麼?終止值是結束程序的編號。第一個數字必須是一個術語。數字,第二個是數字輸入開始的地方,如果它的終止號再次出現程序運行錯誤並重新啓動。 – x2FrostFire
你的代碼讀取終止號碼,如果**下一個**值是終止號碼,也會打印一條錯誤消息。但輸入終止號後的第二個值可能是任何數字,包括終止值,這是一個相當奇怪的實現。 – Paul