我正在尝试编写一种方法来减去多个数字,而不是仅使用 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(in.hasNextDouble()) {
System.out.print("Please enter the next number: ");
double valueTwo = in.nextInt();
difference = value - valueTwo;
}
System.out.println("Difference: " + difference);
}
目前仅适用于 2 个输入,但我的最终目标是能够继续减去多个数字。
不要不断地从
value
中减去,而是从 difference
中减去
将
difference = value - valueTwo;
更改为 difference -= 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);
}
这应该可以正常工作
#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
public static void compute_Substraction() {
Scanner myinputs = new Scanner(System.in);
System.out.println("Enter value one ");
double value =myinputs.nextDouble();
System.out.println("Enter remaining number of values you desire
to use");
int num = myinputs.nextInt();
for (int i = 1; i <=num; i++) {
System.out.println("Enter num " + (i+1));
double thevalue = myinputs.nextDouble();
value -=thevalue;
}
System.out.println("The final value is " + value);
}
// Answer is as below
Enter value one
20
Enter remaining number of values you desire to use
1
Enter num 2
6
The final value is 14.0
此解决方案在第一次输入后不会挂起。它更加用户友好。
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);
测试
Please enter the number: 10
Please enter the next number, or . to stop: 1
Please enter the next number, or . to stop: 2
Please enter the next number, or . to stop: 3
Please enter the next number, or . to stop: .
Difference: 4.0