2015-09-23 54 views
0

我的代碼已經可以工作,它幾乎可以在我想要的位置,但是我希望system.out以小時分鐘和秒顯示fastestrunnertime,而不僅僅是秒,但是我仍然需要讓我的變量s始終轉換爲秒,以便輕鬆地比較數據。只是不太確定如何在不中斷我的代碼的情況下將輸出恢復到小時分秒。將轉換後的輸出轉換爲小時分秒,轉換爲秒後進行比較

double fastesttime = 1000000; 
    int fastestrunnernumber = 1; 
    double slowesttime = -1000000; 
    int slowestrunnernumber = -1; 



    while (reader.hasNext()) { 

    int runner = reader.nextInt(); 
    int hours = reader.nextInt(); 
    int minutes = reader.nextInt(); 
    double seconds = reader.nextDouble(); 

    if (minutes < 60 && seconds < 60) { 


     } 


    else { 
     System.out.println("Runner with invalid time: " + runner); 



    } 
     double s = ((hours * 3600) + (minutes * 60) + (seconds)); 

     if (s < fastesttime) { 
      fastesttime = s; 
      fastestrunnernumber = runner; 



     } 

     if (s > slowesttime) { 
      slowesttime = s; 
      slowestrunnernumber = runner; 


     } 



    } 






    System.out.println("The fastest runner is " + fastestrunnernumber + " with the time " + fastesttime); 

    System.out.println("The slowest runner is " + slowestrunnernumber + " with the time " + slowesttime); 

    } 

} 

}

+1

我不明白,是什麼讓你覺得你在某種程度上放鬆了「小時」,「分鐘」和「秒」?哦,也許是範圍問題,你想在'while'之外使用它們嗎?如果是這樣,你必須按照'slowestrunnernumber'的方式來做(即在'while'之外聲明它們) –

+0

變量會丟失,因爲他從讀取器中讀取所有變量。因此,他只有最後一個。 – rlinden

回答

0

你有兩個選擇:保持新的變量(fastest_hour,fastest_minute等)的原始值或在年底進行劃分,像這樣:

int hours=fastesttime/3600; 
int rest=fastesttime%3600; 
int minutes=rest/60; 
int seconds=rest%60; 

如果你看,你會看到這些是從轉換到秒的相反操作。

我希望它有幫助。