多个数字相减

问题描述 投票:0回答:6

我正在尝试编写一种方法来减去多个数字,而不是仅使用 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 个输入,但我的最终目标是能够继续减去多个数字。

java oop methods subtraction
6个回答
0
投票

不要不断地从

value
中减去,而是从
difference

中减去

difference = value - valueTwo;
更改为
difference -= valueTwo

这相当于做

((A - B) - C) - ...
,A是第一个输入,B是第二个输入,C是第三个输入......


0
投票
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);
}

0
投票

这应该可以正常工作

#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  

                                                                     
                                                                                     

0
投票
 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

-1
投票

此解决方案在第一次输入后不会挂起。它更加用户友好。

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);
    }

-1
投票

为什么有两个变量?不管怎样,下面的比较简单,提示也正确:

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
© www.soinside.com 2019 - 2024. All rights reserved.