1

是的,我正在为学校开发一个程序,该程序的目的是找到最少数量的硬币,我是一个新手程序员,这是我第一次,所以我不知道其他成千上万的事情以及其他人不知道的事情. 我编写了代码并且它可以工作,但我似乎发现了一个错误/故障或者你想调用它。

我的代码

import java.util.Scanner;

public class Coin {

public static void main (String[] Args) {

    int quarters = 25;
    int dimes = 10;
    int nickles = 5;
    int pennies = 1;


    System.out.println("Enter in a number between 1-99");

    // "Input" Part of Code (Remember this and go back for reference)
    Scanner Userinput = new Scanner(System.in);

   int stuff = Userinput.nextInt();
   int q = stuff/quarters;
   String A = "Number of Quarters:" +q;


   System.out.println(A);

   int hold = stuff%quarters;
   int d = hold/dimes;
   String B = "Number of Dimes:" +d;

   System.out.println(B);

   int hold1 = stuff%dimes;
   int n = hold1/nickles;
   String C = "Number of Nickles:" +n;

   System.out.println(C);

   int hold2 = stuff%nickles;
   int p = hold2/pennies;
   String D = "Number of Pennies:" +p;

   System.out.println(D);

   System.out.println("Thank you for Using My Program");

      }
}

现在,一切正常,我可以输入我喜欢的任何数字并获得所需的结果,但是由于某些奇怪的原因,我无法理解我输入了 75-79 之间的任何数字,并且由于某些奇怪的原因添加了一个 Nickle,我已经花了2 小时的大部分时间试图弄清楚到底出了什么问题,但不能。已经尝试了几十个数字,除了那个小区域外,它们都工作得很好。

有人可以偶然告诉我可能出了什么问题吗?

4

2 回答 2

1

在添加以前的较大硬币时,您需要减去已经考虑的内容。

例如,如果我说 77,那么程序将检查 77%10 并返回 7。您可能希望通过之前添加的任何硬币来调整您的“东西”值。所以在这种情况下,在添加 3 个四分之一 (75) 之后,我们想要设置 stuff = stuff - 75 (stuff -= 75)。

编辑:更准确地说,在每次计算之后你可以运行

stuff -= q * quarters;

当然,将变量更改为适合代码的每个部分。

于 2013-11-06T05:30:54.723 回答
1

您的hold = ...行应基于先前的hold值而不是全部金额 ( stuff)。

int hold2 = hold%nickles;
于 2013-11-06T05:26:35.693 回答