2016-03-05 112 views
-1

我的任務需要我讀取用戶輸入的數字並輸出數字生成的硬幣。例如,如果用戶輸入「37」,程序應該回應(1季度,1毛錢和2便士)。錢幣變化計算

這是迄今爲止我已經得到了我會很感激,如果有人可以幫助我完成它,以及看我當前的代碼有follwing可以使用任何錯誤

import java.util.Scanner; 
public class Coin 
{ 
    Scanner sc = new Scanner (System.in); 
    Int n = sc.nextInt("Enter a positive integer"); 
    int number1, number2; // Division operands 
    int quotient;   // Result of division 

    public static int getQuarters(int cents) { 
     return Math.floor(cents/25.0); 
    } 
    public static int getDimes(int cents) { 
     return Math.floor(cents/10.0); 
    } 
    public static int getNickels(int cents) { 
     return Math.floor(cents/5.0); 
    } 
    public static int getPennies(int cents) { 
     return Math.floor(cents/1.0); 
    } 
    public static void main(String[] args) { 
     int cents = 46; 
     int left = cents; 
     int quarters = getQuarters(cents); 
     int left -= quarters * 25; 
     int dimes = getDimes(left); 
     left -= dimes * 10; 
     int nickels = getNickels(left); 
     left -= nickels * 5; 
     int pennies = left; 
     System.out.println(cents + " cents = " + quarters + " Quarters, " + dimes + " Dimes, " + nickels + " Nickels, and " + pennies + " Pennies."); // print the output 
    } 
} 
+0

你面臨的問題是什麼? –

回答

0

的代碼,但我不太瞭解你的變數。

import java.util.Scanner; 

public class Test{ 

public static int getQuarters(int cents) { 
       return (int) Math.floor(cents/25.0); 
} 
public static int getDimes(int cents) { 
       return (int) Math.floor(cents/10.0); 
} 
public static int getNickels(int cents) { 
       return (int) Math.floor(cents/5.0); 
} 
public static int getPennies(int cents) { 
       return (int) Math.floor(cents/1.0); 
} 
public static void main(String[] args) { 
    Scanner sc = new Scanner (System.in); 
    System.out.println("Enter a positive integer"); 
    int n = sc.nextInt(); 
    // int number1, number2; // Division operands 
    // int quotient;   // Result of division 
    int cents = n; 
    int left = cents; 
    int quarters = getQuarters(cents); 
    left -= quarters * 25; 
    int dimes = getDimes(left); 
    left -= dimes * 10; 
    int nickels = getNickels(left); 
    left -= nickels * 5; 
    int pennies = left; 
    System.out.println(cents + " cents = " + quarters + " Quarters, " + dimes + " Dimes, " + nickels + " Nickels, and " + pennies + " Pennies."); // print the output 
} 
} 
+0

非常感謝,如果編譯,但我怎麼做,所以結果沒有0時,硬幣isint使用以及複數和單數。我想出了這個,這是對的嗎? https://gyazo.com/19927151498f27706a538afbb3e1a448 –

+0

我認爲一個更好的方法是最後添加一個判斷。就像if(quarters!= 0)Systen.out.println(quarters); – TanLingxiao

1

首先,「如果我當前的代碼有任何錯誤」 - 是的,它的確如此,您的開發環境應該指出它們。或者,如果您使用的是命令行構建,它會再次指出它們。那個向我跳來跳去的人:你有第二個「左」的定義。但重要的是,讓您的IDE或構建腳本告訴您是否有任何語法錯誤。

然後,要解決「可以幫我完成」我問:你甚至試過運行它? (不,不會用第二個「int left」定義進行編譯)。但清理錯誤,運行它,看看會發生什麼......你可能會感到驚訝。

當然,那麼你需要激活輸入掃描器,而不是硬編碼的金額來計算...