promotion image of download ymail app
Promoted
Anonymous
Anonymous asked in 社會與文化語言 · 1 decade ago

JAVA作業的問題~急

攝氏溫度(C)轉換為華氏溫度(F)的公式為:F=9/5*C+32。請撰寫一程式,可以將攝氏溫度0、54和98度輸出為華氏溫度。

class EX3_1

{

public static void main(String[] args)

{

long a=23000000,b;

b=23000000*9876;

System.out.println(b);

wa(0);

wa(54);

wa(98);

}

public static wa(int C)

int F;

F=9/5*C+32;

System.out.println(F);

}

}

=======================================

好像有錯的地方~但我不知道怎麼修改呢!

拜託各位~急!

Update:

那請問是應該要怎麼樣修改呢?試了後還是不懂~麻煩給我正確的程式~謝謝!

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    class EX3_1{

     public static void main(String[] args){

      long a=23000000,b;

      b=23000000*9876;

      System.out.println(b);

      wa(0);

      wa(54);

      wa(98);

     }

     public static void wa(int C){

      int F;

      F=9/5*C+32;

      System.out.println(F);

     }

    }

    你的 method :wa 沒有指定回傳型態,照你的程式看來應該是不打算回傳任何值,故應指定回傳型態為 void,又 method :wa 中的運算邏輯沒有被包含在左右大括弧 {} 中,少了左大括弧,修正以上問題後.....

    以下是 compile 以及執行的結果:

    >javac EX3_1.java

    >java EX3_1

    -485266688

    32

    86

    130

    >

    另外 main 中列印出的 b 變數值會是 -485266688 是因為沒有對指定給 b 的運算式中的數值強制轉型的關係,java 中整數若未宣告或強制轉型,則以 int 型態看待之,若想要得出正確的結果,則需將 .....

    b=23000000*9876;

    改為   b=a*9876;

    或是改為 b=(long)230000008*9876;

    運算式中只要有一個數值為 long型態,則結果則與最大資料型態為其資料型態。

    修改後的類別內容僅舉其中一例:

    class EX3_1{

     public static void main(String[] args){

      long a=23000000,b;

      b=(long)23000000*9876;

      System.out.println(b);

      wa(0);

      wa(54);

      wa(98);

     }

     public static void wa(int C){

      int F;

      F=9/5*C+32;

      System.out.println(F);

     }

    }

    以下是 compile 以及執行的結果:

    >javac EX3_1.java

    >java EX3_1

    227148000000

    32

    86

    130

    >

    ps : 不要直接複製我貼在上面的程式碼,為求程式具可讀性,又可在網頁裡正常顯示(一般的空白會不見,就像你貼的程式碼一樣),所以我在縮排的地方是用全形的空白,若直接複製貼上在你的程式碼中,那一定無法編譯成功的!編譯前請把所有的全型空白拿掉或是用 tab 代替,才能成功編譯及執行!

    Source(s): 小弟在下我
    • Commenter avatarLogin to reply the answers
Still have questions? Get your answers by asking now.