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