调试学校项目

时间:2013-11-06 05:18:21

标签: java

是的,我正在为学校制定计划,目的是为了找到最少数量的硬币,我是新手程序员,这是我的第一次,所以我不知道成千上万的其他东西,什么不是其他人呢。我编写了代码并且它有效,但我似乎发现了一个错误/故障或者你想要调用它。

我的代码

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个小时的大部分时间试图弄清楚到底出了什么问题,但不能。 Hav尝试了几十个toher数字,除了那个小区域外,它们工作正常。

有人可能会告诉我可能出现的问题吗?

2 个答案:

答案 0 :(得分:1)

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

int hold2 = hold%nickles;

答案 1 :(得分:1)

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

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

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

stuff -= q * quarters;

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