Java 减数
我正试图写一个方法,将减去多个数字,而不是只使用2个输入数字 到目前为止我已经Java 减数,java,oop,methods,subtraction,Java,Oop,Methods,Subtraction,我正试图写一个方法,将减去多个数字,而不是只使用2个输入数字 到目前为止我已经 public void getSub() { Scanner in = new Scanner(System.in); System.out.print("Please enter the number: "); double value = in.nextDouble(); double difference = 0; while(i
public void getSub() {
Scanner in = new Scanner(System.in);
System.out.print("Please enter the number: ");
double value = in.nextDouble();
double difference = 0;
while(in.hasNextDouble()) {
System.out.print("Please enter the next number: ");
double valueTwo = in.nextInt();
difference = value - valueTwo;
}
System.out.println("Difference: " + difference);
}
这目前只适用于2个输入,但我的最终目标是能够继续减去多个数字 而不是从
值
中连续减去,而是从差值
更改<代码>差异=值-值二代码>至差异-=valueTwo
这相当于执行
((A-B)-C)-…
,A是第一个输入,B是第二个输入,C是第三个输入…此解决方案在第一个输入后不会挂起。它更方便用户
public void getSub() {
Scanner in = new Scanner(System.in);
System.out.print("Please enter the number: ");
double difference = in.nextDouble();
while(in.hasNextDouble()) {
System.out.print("Please enter the next number: ");
difference -= in.nextDouble();
}
System.out.println("Difference: " + difference);
}
public static void getSub() {
Scanner in = new Scanner(System.in);
System.out.print("Please enter the next number: ");
double difference = 0.0;
while(in.hasNextDouble()) {
System.out.print("Please enter the next number: ");
difference -= in.nextDouble();
}
System.out.println("Difference: " + difference);
}
为什么有两个变量?无论如何,以下内容更简单,提示正确:
Scanner in = new Scanner(System.in);
System.out.print("Please enter the number: ");
double value = in.nextDouble();
while (true) {
in.nextLine(); // Silently discard rest of line
System.out.print("Please enter the next number, or . to stop: ");
if (! in.hasNextDouble())
break;
value -= in.nextDouble();
}
System.out.println("Difference: " + value);
试验
请输入号码:10
请输入下一个号码,或。停止:1
请输入下一个号码,或。停止:2
请输入下一个号码,或。停止:3
请输入下一个号码,或。停止:。
差异:4.0
这应该可以正常工作
为什么你要检查是否有下一个
双精度
,然后读取int
?你的问题是什么?@CPerkins我猜问题是为什么它没有按照创造者的期望工作work@phflack他没有说什么不对。他没有说这有什么不同。我不打算读他的心思,我们也不应该读。我试着要求清楚,但没有,我现在投票决定结束。@CPerkins我同意它的措辞很糟糕,这就是为什么我们必须猜测最一般的东西,才能在猜测中正确。我们所知道的是,它可能没有按照OP希望的方式工作,但我们不知道如果不清楚difference-=valueTwo
是什么缩写,那么期望的最终结果可能是什么“从difference
中减去valueTwo
,并将结果分配给difference
。您正在打印请输入下一个数字:
在第一次输入时,应使用第一次打印提示用户输入值以初始化difference
#include <stdio.h>
int main()
{
int result=0, n,number,i;
printf("How many numbers you want to use?\n");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d", &number);
if(i ==0 ){
result=number;
}
else{
result -= number;
}
}
printf("Answer is= %d ", result);
return 0;
}
How many numbers you want to use?
4
55
34
1
3
Answer is= 17