Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改硬币数量_Java - Fatal编程技术网

Java 更改硬币数量

Java 更改硬币数量,java,Java,我试图获得满足规定的兑换量(1-99)所需的最小硬币数量(25美分、10美分、5美分和1美分)。例如: Change: 93 Quarters: 3 Dimes: 1 Nickels: 1 Pennies: 3 当我运行我的程序时,我没有得到我应该得到的答案。我的问题是如何使程序中的输出看起来像上面的解决方案?我是否在程序中更改方程式以获得我想要的数字?我对该计划唯一有权的部分是达到规定金额所需的季度数量。该计划还需要为1到99之间的任何规定金额工作 以下是我目前掌握的情况: pack

我试图获得满足规定的兑换量(1-99)所需的最小硬币数量(25美分、10美分、5美分和1美分)。例如:

Change: 93

Quarters: 3

Dimes: 1

Nickels: 1

Pennies: 3
当我运行我的程序时,我没有得到我应该得到的答案。我的问题是如何使程序中的输出看起来像上面的解决方案?我是否在程序中更改方程式以获得我想要的数字?我对该计划唯一有权的部分是达到规定金额所需的季度数量。该计划还需要为1到99之间的任何规定金额工作

以下是我目前掌握的情况:

package mincoins;
import java.util.Scanner;

public class MinCoins2
{

    public static void main(String[] args)

    {
        int change = 0;
        int quarters = 0;
        int dimes = 0;
        int nickels = 0;
        int pennies = 0;
        try ( //creates a copy of Scanner class
                Scanner in = new Scanner(System.in))
        {
            System.out.println("Please enter amount of change(1-99)");

            change = in.nextInt();

            //loop for quarters
            while (change >= 25)
            {
                change = change - 25;
                quarters = quarters + 1;
            }
            while (change >= 10)
            {
                change = change - 10;
                dimes = dimes + 1;
            }
            while (change >= 5)
            {
                change = change - 5;
                nickels = nickels + 1;
            }
            pennies = change;
            System.out.println("Change: " + change);
            System.out.println("Quarters = " + change);
            System.out.println("Dimes = " + change);
            System.out.println("Nickels = " + change);
            System.out.println("Pennies = " + change);
        }
    }//end of main
}//end of class

您在最后4行有输入错误:

System.out.println("Change:" + change);
System.out.println("Quarters= "+ change);
System.out.println("Dimes=" + change);
System.out.println("Nickels=" + change);
System.out.println("Pennies=" + change);
是否正在打印
change

此外,while循环条件应该是
=
,而不是

最后,要在最后打印出更改,您必须复制它,因为您正在while循环中修改它

change = in.nextInt();
int changeOut = change;
...
System.out.println("Change:" + changeOut);

最后4行有打字错误:

System.out.println("Change:" + change);
System.out.println("Quarters= "+ change);
System.out.println("Dimes=" + change);
System.out.println("Nickels=" + change);
System.out.println("Pennies=" + change);
是否正在打印
change

此外,while循环条件应该是
=
,而不是

最后,要在最后打印出更改,您必须复制它,因为您正在while循环中修改它

change = in.nextInt();
int changeOut = change;
...
System.out.println("Change:" + changeOut);

主要问题是您使用的变量。您应该在适当的位置使用您的
四分之一
一角
五分镍币
,以及
便士
变量

还有一个逻辑错误——你需要用尽所有剩余的零钱来计算你的硬币数。由于您的输出(您实际需要的输出)并不要求您计算剩余的更改(因为它应该是0),因此您可以完全避免另一个循环,只需将
便士
直接分配给
更改

pennies = change;
…这将为您提供剩余硬币总数的正确结果


作为一些常规清理,您还希望避免在print语句中赋值,因为它可能会有点混乱。使用诸如
change-=25
之类的语句来代替
System.out.println

主要问题是使用的变量。您应该在适当的位置使用您的
四分之一
一角
五分镍币
,以及
便士
变量

还有一个逻辑错误——你需要用尽所有剩余的零钱来计算你的硬币数。由于您的输出(您实际需要的输出)并不要求您计算剩余的更改(因为它应该是0),因此您可以完全避免另一个循环,只需将
便士
直接分配给
更改

pennies = change;
…这将为您提供剩余硬币总数的正确结果


作为一些常规清理,您还希望避免在print语句中赋值,因为它可能会有点混乱。使用独立于
系统.out.println
的语句,如
change-=25

显然,打字错误是个问题,需要:

System.out.println("Quarters = " + quarters);
System.out.println("Dimes = " + dimes);
System.out.println("Nickels = " + nickles);
System.out.println("Pennies = " + change);
但我想就这段代码如何在循环中工作提出一个建议,例如:

//loop for quarters
while (change > 25) {
    change = change - 25;
    quarters = quarters + 1;
}
无需循环即可轻松完成此操作:

quarters = change / 25;
change = change - quarters * 25;
这是因为
change
25
int
s,所以
/
将进行整数除法。它将给出最大数量的适合变化的四分之一,即四舍五入

再进一步,您还可以使用%模运算符在每个步骤中获得剩余的更改:

quarters = change / 25;
change = change % 25;

dimes = change / 10;
change = change % 10;

nickels = change / 5;
change = change % 5;

显然,打字错误是问题所在,需要:

System.out.println("Quarters = " + quarters);
System.out.println("Dimes = " + dimes);
System.out.println("Nickels = " + nickles);
System.out.println("Pennies = " + change);
但我想就这段代码如何在循环中工作提出一个建议,例如:

//loop for quarters
while (change > 25) {
    change = change - 25;
    quarters = quarters + 1;
}
无需循环即可轻松完成此操作:

quarters = change / 25;
change = change - quarters * 25;
这是因为
change
25
int
s,所以
/
将进行整数除法。它将给出最大数量的适合变化的四分之一,即四舍五入

再进一步,您还可以使用%模运算符在每个步骤中获得剩余的更改:

quarters = change / 25;
change = change % 25;

dimes = change / 10;
change = change % 10;

nickels = change / 5;
change = change % 5;


那么,我应该用什么来代替改变,使输出等于解呢<代码>四分之一,
一角
五分镍币
便士
。我已经更改了它,但仍然得到相同的结果:System.out.println(“Change=“+Change”);System.out.println(“Quarters=“+Quarters”);System.out.println(“Dimes=“+Dimes”);System.out.println(“镍币=”+镍币);System.out.println(“Pennies=“+Pennies”);仍然是相同的结果。@Lilyperson我重新创建了问题,并在我的PC和Ideone上修复了它,我不能再帮你了,因为我不知道问题出在哪里。您可能还有另一个问题,请尝试发布您得到的输出,并向您解释为什么它是错误的。那么,我应该用什么来代替更改,以使输出与解决方案相等?嗯<代码>四分之一,
一角
五分镍币
便士
。我已经更改了它,但仍然得到相同的结果:System.out.println(“Change=“+Change”);System.out.println(“Quarters=“+Quarters”);System.out.println(“Dimes=“+Dimes”);System.out.println(“镍币=”+镍币);System.out.println(“Pennies=“+Pennies”);仍然是相同的结果。@Lilyperson我重新创建了问题,并在我的PC和Ideone上修复了它,我不能再帮你了,因为我不知道问题出在哪里。您可能还有另一个问题,请尝试发布您得到的输出,并解释为什么它不对您。您应该有0个更改。这不是一个数学问题,这是一个逻辑问题。在你的最后5行中,你总是打印
change
,而不是
quarters
dimes
nickels
pennies
!不管我做什么,它都不能满足我的需求。为什么要在这个上面添加
try
块?这在这里绝对没有必要