0

Java クラス用に構築している変更マシンに問題があります。私はプログラミングに非常に慣れていないため、これはばかげた論理エラーである可能性があります。私の両替機は、アイテムの価格を入力してから支払った金額を入力するようにユーザーに要求し、ユーザーが四半期、ダイムなどで受け取るお釣りの量を計算することになっています...ただし、毎回1四半期しかカウントしていません。コードは次のとおりです。

import java.util.Scanner;
import java.text.*;

public class Main {

    public static void main(String[] args) 
    {
    float penny = .1F, nickel = .5F, dime = .10F, quarter = .25F;
    int pennyCtr = 0, nickelCtr = 0, dimeCtr = 0, quarterCtr = 0;

    Scanner scan = new Scanner(System.in);

    System.out.println("Enter Purchase Price: ");
    float price = scan.nextFloat();
    DecimalFormat paidFormat = new DecimalFormat("0.00");

    System.out.println("Enter Amount Paid: ");
    float paid = scan.nextFloat();

    float change = (float) (paid - price);

    System.out.println("Your change from $" + paidFormat.format(paid) 
            + " is: " + change);

    if (change >= .25)
    {
        change -= quarter;
        quarterCtr++;
    }
    else if (change < .25)
    {
        change -= dime;
    dimeCtr++;
    }
    else if (change < .10)
    {
    change -= nickel;
    nickelCtr++;
    }
    else if (change < .5)
    {
        change -= penny;
        pennyCtr++;
    }

    System.out.println("Your change from $" + paidFormat.format(paid) +
            " is: " + quarterCtr + " Quarters, " + dimeCtr + " Dimes, "
            + nickelCtr + " Nickles, " + pennyCtr + " Pennies. ");

    System.out.println("Program written by Ashley ");
    }
}
4

2 に答える 2

1

一般的なヒント:

  1. 変数、特にペニーとニッケルを宣言する方法を見てください。
  2. 変化をどのように計算しているかを見てください。そうですか?
  3. whileループが必要です。どのくらいループする必要がありますか?ループはいつ終了する必要がありますか?
  4. 「あなたの変更元...」を印刷するときは、変更をきれいに出力するにはどうすればよいかを考えてください。
  5. 浮動小数点数の減算に関するいくつかの質問を Google で検索してください。最初に思ったほど簡単ではありません。double宣言と入力に代わりに使用することを検討してください。
于 2013-08-21T20:43:42.447 に答える