[英]Debugging School Project
是的,我正在为学校编写程序,该程序的目的是找到最小数量的硬币,我是新手程序员,这是我第一次来,所以我不知道成千上万的其他事情,其他人不怎么做。 我编写了代码,并且可以正常工作,但是我似乎发现了一个要调用的错误/故障或错误。
我的代码
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;
您需要减去添加较大的先前硬币时已经考虑的金额。
例如,如果我说77,那么程序将检查77%10并返回7。您可能希望通过以前添加的任何硬币来调整“填充”值。 因此,在这种情况下,在添加了四分之三(75)之后,我们将需要设置“填充=填充-75(填充-= 75)”。
编辑:更精确地说,在每次计算之后,您都可以运行
stuff -= q * quarters;
当然,更改变量以使其适合代码的每个部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.