我试图取一些零钱,小于 1.00 美元,但大于零,并显示进行该更改所需的硬币、硬币、镍币和便士的数量。输出必须以类似于英语的描述性方式呈现,并具有以下语法规则:
如果金额为零,则应使用"否"一词。如果金额为 1,则单位必须是单数。如果数量不是 1,则单位必须是复数。
此外,当输入小于 0 或大于 1 的任何内容时,程序应捕获用户错误,并进入数据验证循环以显示提示并要求用户重新输入金额。这个循环将一直持续到用户输入的金额小于 1.00 美元,但大于零。
当我运行我的代码时,我不断地得到4。
谢谢你的时间!非常感谢任何帮助!
到目前为止我的代码:
import java.util.Scanner;
public class CoinChange
{
public static void main(String[] args)
{
double amt;
int cents, quarter, dime, nickle, penny;
Scanner keyboard = new Scanner(System.in);
System.out.print("Change in Coins\n" +
"----------------\n\n");
System.out.println("Enter the amount less than $1.00, but\n" +
"more than zero.");
System.out.print("\nEnter amount: ");
amt = keyboard.nextInt();
// ----------------------------------------------
cents = (int)(amt*100 + .1);
quarter = cents/25;
cents %= 25;
dime = cents/10;
cents %= 10;
nickle = cents/5;
cents %= 5;
penny = cents;
// -----------------------------------------
while(amt > 0 && amt <= 1)
{
// -----------------------------------------
if(quarter == 0)
{
System.out.print("no ");
}
else
System.out.print(quarter);
}
if(quarter == 1)
{
System.out.print("quarter");
}
else
{
System.out.print("quarters");
}
}
}