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

我的代码

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)尝试了几十个数字,它们工作得很好,除了那个小区域。

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

最佳答案

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

int hold2 = hold%nickles;

10-06 16:15