我需要写一个java程序来计算什么账单和零钱将被给予销售交易。
它只能分发20美元、10美元、5美元、1美元、25美分、1美分、10美分、5美分和1美分。
如果它不需要分发面额(假设您的零钱是50美分,它应该只分发两个25美分)。它不应该提到其他货币)
我不能让它分配正确的货币数量,它只是分配所有的货币(例如,如果是21美元,我给了收银员22美元,代码告诉我给.013 20美元,.294 10美元,等等)。如果有人能帮我,那就太好了。
double price; // declares how much the price is
double moneyGiven; // declares how much money the cashier is given
int change; // declares how much change is given in return
System.out.println("Enter the Price of the item:");
price = IO.readDouble()*100;
{
{
System.out.println("Enter the Amount Given:");
moneyGiven = IO.readDouble()*100;
{
if (moneyGiven > price)
System.out.println("Your Change is:");
change = moneyGiven - price;
int twenties = change / 2000;
if (twenties >= 1) {
change = change % 2000;
System.out.println(twenties + "$20 Bills");
}
int tens = change / 1000;
if (tens >= 1) {
change = change % 1000;
System.out.println(tens + "$10 Bills");
}
int fives = change / 500;
if (fives >= 1) {
change = change % 500;
System.out.println(fives + "$5 Bills");
}
int ones = change / 100;
if (ones >= 1) {
change = change % 100;
System.out.println(ones + "$1 Bills");
}
int quarters = change / 25;
if (quarters >= 1) {
change = change % 25;
System.out.println(quarters + "Quarters");
}
int dimes = change / 10;
if (dimes >= 1) {
change = change % 10;
System.out.println(dimes + "Dimes");
}
int nickles = change / 5;
if (nickles >= 1) {
change = change % 5;
System.out.println(nickles + "Nickles");
}
int pennies = change / 1;
if (pennies >= 1) {
change = change % 1;
System.out.println(pennies + "Pennies");
}
if (moneyGiven <= price)
System.out.println("Not enough!");
if (moneyGiven == price)
System.out.println("There is no Change to be given.");
}
}
}
}
}发布于 2015-03-08 10:14:27
这里有一些错误的地方:
if语句后面有分号。这将意味着以下大括号中的代码总是被执行,你似乎会检查从5开始的余数是否大于0,而不是1。发布于 2015-03-08 11:39:37
我相信我找到了答案,但它返回的答案是十进制的答案,即。1.0、5.0。如果没有.0,我如何让它返回答案?但是,我希望在我的代码中有任何输入:
double price; // declares how much the price is
double moneyGiven; // declares how much money the cashier is given
double change; // declares how much change is given in return
System.out.println("Enter the Price of the item:");
price = IO.readDouble()*100; {
{
System.out.println("Enter the Amount Given:");
moneyGiven = IO.readDouble()*100; {
if (moneyGiven > price)
System.out.println("Your Change is:");
change = moneyGiven - price;
double twenties = change / 2000;
if (twenties >= 1) {
change = change % 2000;
System.out.println(Math.floor(twenties) + "$20 Bills"); }
double tens = change / 1000;
if (tens >= 1) {
change = change % 1000;
System.out.println(Math.floor(tens) + "$10 Bills"); }
double fives = change / 500;
if (fives >= 1) {
change = change % 500;
System.out.println(Math.floor(fives) + "$5 Bills"); }
double ones = change / 100;
if (ones >= 1) {
change = change % 100;
System.out.println(Math.floor(ones) + "$1 Bills"); }
double quarters = change / 25;
if (quarters >= 1) {
change = change % 25;
System.out.println(Math.floor(quarters) + "Quarters"); }
double dimes = change / 10;
if (dimes >= 1) {
change = change % 10;
System.out.println(Math.floor(dimes) + "Dimes"); }
double nickles = change / 5;
if (nickles >= 1) {
change = change % 5;
System.out.println(Math.floor(nickles) + "Nickles"); }
double pennies = change / 1;
if (pennies >= 1) {
change = change % 1;
System.out.println(Math.floor(pennies) + "Pennies"); }
if (moneyGiven <= price)
System.out.println("Not enough!");
if (moneyGiven == price)
System.out.println("There is no Change to be given.");
}
}
}
}
}https://stackoverflow.com/questions/28922206
复制相似问题