java调试学校项目
是的,我正在为学校做一个程序,这个程序的目的是寻找最小数量的硬币,我是一个新手程序员,这是我第一次,所以我不知道成千上万的其他事情和其他人不知道的事情。我写了代码,它工作正常,但我似乎发现了一个错误/小故障或你想称之为w/e
我的密码
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之间,有一个额外的五分镍币由于一些奇怪的原因,我花了2个小时的大部分时间试图找出到底是什么错了,但无法。我尝试了几十个toher号码,除了一个小区域外,它们工作正常
谁能碰巧告诉我出了什么问题吗
# 1 楼答案
在添加之前较大的硬币时,需要减去已经计算的金额
例如,如果我说77,那么程序将检查77%10并返回7。你可能想通过之前添加的硬币来调整你的“物品”价值。所以在本例中,在添加3个四分之一(75)之后,我们想要设置stuff=stuff-75(stuff-=75)
编辑:更准确地说,在每次计算之后
当然,更改变量以适合代码的每一部分
# 2 楼答案
你的
hold = ...
行应该基于之前的hold
值,而不是全额(stuff
)