-3

完全にコンパイルされますが、未使用のコインを表示しないようにする方法を知りたいだけです。すなわち。ユーザー入力: 9.65

したがって、出力は次のようになります。

4 トゥーニー 1 ルーニー 2 クォーター 1 ダイム 1 ニッケル

私のものを購入すると、次のようになります。

9 ドル 65 セントと入力しました。

この量を補うには、

4 トゥーニー 1 ルーニー 2 クォーター 6 ダイム 13 ニッケル 15 ペニー

処理の終了

編集:

    import javax.swing.JOptionPane; // Needed for JOptionPane
    import java.util.Scanner;

/**
  This program is for question 1.
  need to use echo and make only needed coins appear and also space between lines
*/

パッケージテスト;

public class coincounterr {
    public static void main (String[] args){
        //Declare variables        
        String input; //to ask user an amount of money        
        double money; //money user types in        
        int dollars;        
        double cents;        
        long t, l, q, d, n, p;
        final int QUARTERS = 25;
        final int DIME = 10;
        final int NICKEL = 5;
        final int PENNIES = 1;

        //Ask user for an amount of money
        input = JOptionPane.showInputDialog(null, "Enter any amount of money in $.");
        money = Double.parseDouble(input);

        //use println to display the end result
        dollars = (int) money;
        long cent = Math.round((money-Math.floor(money))*100);
        System.out.println("You entered the amount " + dollars + " dollars and " + cent + " cents.\n");
        t = dollars/2; //2 dollars
        l = dollars%2; //1 dollar
        q = cent/25; //25 cents
        d = (cent%25)/10; //10 cents
        n = (cent - (q*25)-(d*10))/5; //5 cents
        p = cent - (q*25)-(d*10)-(n*5); //1cent 

        // output for toonies and loonies
        System.out.println("To make up this amount, use \n");
        if ( t<= 0)
            System.out.println();
        else if ( t > 1)
            System.out.println(+t+" toonies \n");
        else if ( t <= 1)
            System.out.println(+t+" toony \n");
        if (l<=0)
            System.out.println();
        else if ( l > 1)
            System.out.println( + l + " loonies \n");
        else if ( l <= 1)
            System.out.println( +l+ " loony \n");


        //use if statement for QUARTERS
        if (q <= 0)
            System.out.println();
        else if (cent >= QUARTERS) //25 cents
            System.out.println( +q+ " quarters \n"); 
        if (d <= 0)
            System.out.println();                    
        else if ( cent >= DIME )
            System.out.println ( +d+ " dime \n");
        if (n <= 0)
            System.out.println();
        else if ( cent >= NICKEL)
            System.out.println( +n+ " nickels\n");
        if (p <= 0)
            System.out.println();                      
        else if ( cent >= PENNIES)
            System.out.println( +p+ " pennies\n");

        System.out.println("End of processing");
    }
}
4

1 に答える 1

0

if (n > 0)「不要な」コインを印刷する前に追加します。練習を続けられるように、コードは投稿しません ;)

編集:大きなヒント:

else if (cent <= NICKEL) {
    if (n > 0)
        System.out.println(n+" nickels");
}

cent = 65EDIT2: 計算に問題があります: 65 セント ( )を持っているとしましょう:

d = cent/10; // 6
n = cent/5;  // 13, when what you want is probably 1

前に数えた金額を引くのを忘れていdます。65 セントを持っていて65 / 10 = 6、10 セントのコインを取得することにした場合、残りは 5 セントです。各ステップで残りの作業を行う必要があります。

幸運を!

于 2013-10-05T06:45:08.383 に答える