2017-03-12 55 views
0

我一直試圖讓這個程序工作幾個小時。我設法讓華氏轉爲攝氏溫度,但在我的生活中,我不能對攝氏溫度和華氏溫度做同樣的工作。我將在學校再次啓動時詢問我的老師,但截至目前,我將不勝感激。這是我的代碼。無法獲取溫度表在java中工作

import java.util.Scanner; 

public class TempConvert { 
    public static void main(String[] args) { 
      //variables 
      double number; 
      int maxFahrenheit = 52; 
      int maxCelsius = 20; 

      Scanner keyboard = new Scanner(System.in); 

      //user input 
      System.out.println("Please enter 1 to convert from Fahrenheit to" + 
       " Celsius"); 
      System.out.println("Please enter 2 to convert from Celsius to" + 
       " Fahrenheit"); 
      number = keyboard.nextDouble(); 

      //if else 
      if (number == 1) { 
       System.out.println("Celsius\t\tFahrenheit"); 
       System.out.println("---------------------------"); 

       int i; 
       double c; 

       for (i = 0, c = 0; i <= maxCelsius; i++, c++) { 
        System.out.println(i + "\t\t" + 9 * (i + 32)/5); 
       } //end for 
      } //end if 
      else if (number == 2) { 
       System.out.println("Fahrenheit\t\tCelsius"); 
       System.out.println("-----------------------------------"); 

       int i; 
       double f; 

       for (i = 32, f = 32; i <= maxFahrenheit; i++, f++) { 
        System.out.println(i + "\t\t" + 5 * (f - 32)/9); 
       } //end for 
      } //end else if 
      else { 
       System.out.println("Entry is invalid"); 
      } //end else 

     } //end main 
} //end TempConvert 
+0

你應該檢查你的編譯器警告。局部變量c的值未被使用。 – klutt

+0

將攝氏度轉化爲華氏溫度的公式爲1.8 * t_c + 32。 '9/5 = 1.8',但是'9 * 32/5 = 57,6'。所以你正在使用'1.8 * t_c + 57.6'這是不正確的。 – andih

回答

0

您需要使用DecimalFormat df = new DecimalFormat(「#。####」);

看我改變了這樣的代碼:

public static void main(String[] args) { 
    //variables 
    double number; 
    int maxFahrenheit = 52; 
    int maxCelsius = 20; 

    Scanner keyboard = new Scanner(System.in); 

    //user input 
    System.out.println("Please enter 1 to convert from Fahrenheit to" + 
    " Celsius"); 
    System.out.println("Please enter 2 to convert from Celsius to" + 
    " Fahrenheit"); 
    number = keyboard.nextDouble(); 

    //if else 
    if(number == 1) { 
    System.out.println("Celsius\t\tFahrenheit"); 
    System.out.println("---------------------------"); 

    int i; 
    double c; 

    for(i = 0, c = 0; i <= maxCelsius; i++, c++) { 
    System.out.println(i + "\t\t" + 9 * (i + 32)/5); 
    }//end for 
    }//end if 

    else if(number ==2) { 
    System.out.println("Fahrenheit\t\tCelsius"); 
    System.out.println("-----------------------------------"); 

    int i; 
    double f; 
    DecimalFormat df = new DecimalFormat("#.####"); 
    for(i = 32, f = 32; i <= maxFahrenheit; i++, f++) { 

    System.out.println(i + "\t\t" + df.format(5 * (f - 32)/9)); 
    }//end for 
    }//end else if 

    else { 
    System.out.println("Entry is invalid"); 
    }//end else 

    }//end main 
    }//end TempConvert 

看看它工作得更好像谷歌,如果你張貼此在谷歌,你會看到42華氏攝氏度

42 = 5.55556

就像你的工具=)

+0

Thx快速回復。唯一的是,我們還沒有在課堂上了解到這些東西。我想也許我只是在做一些愚蠢的錯事,而且很容易指出。我真正知道的是循環,如果現在的話。 –

+0

這是可以的朋友=)你在學習,所以你不應該知道這一點,是的,我們可以做出很多改變,我們可以讓這個程序變得更好,但保持它=)這個世界是你的,並繼續閱讀很多=)任何我可以幫助我會做的肯定;)如果這解決了你的答案你給我一些點?請 – Yussef

+0

我仍然在尋找答案。我嘗試了你所說的並且反對語法。必須有不同的解決方案,以適合更多的線,我們在課堂上學習的問題:/ –