簡體   English   中英

減去單個數組中的所有元素 Java

[英]Subtracting all elements in single array Java

嗨,我無法將一個數組元素減去下一個元素以獲得正確答案。 數組的值由用戶給出。

示例:如果用戶要輸入 3 個數字,即 10、8、1 10-8-1 = 1

int numberOT = 0;
int total =0;
System.out.println("Enter Number of times: ");
numberOT =in.nextInt();

int number[] = new int [numberOT];



for(int i = 0; i<numberOT; i++)
{
    System.out.println("Enter Number: ");
    number[i] = in.nextInt();
}
for(int t =0; t<number.length-1; t++)
{
  total = number[t] - number[t+1];
}
System.out.println("total: " + total);

將第二個循環更改為:

total = number[0];
for (int i=1; i<number.length; i++) {
    total -= number[i];
}

您想從第一個數組項中減去剩余的數組項。 因此,開始的total應該等於第一項,並且在循環中從total中減去每個后續項(從索引1開始)。

請記住,數組中的項目數必須等於或大於 2。

這一行是完全錯誤的: total = number[t] - number[t+1]; 和最后一個循環一樣

total = number[1] - number[2]這將等同於total = 8 - 1 = 7這是完全錯誤的,因為您必須累積總變量。

所以如上所述,完整的正確答案代碼是:

    import java.util.Scanner;

    public class Main
    {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);

            int numberOT = 0;
            int total =0;
            System.out.println("Enter Number of times: ");
            numberOT =in.nextInt();

            int number[] = new int [numberOT];

            for(int i = 0; i<numberOT; i++)
            {
                System.out.println("Enter Number: ");
                number[i] = in.nextInt();
            }
            total = number[0];
            for (int i=1; i<number.length; i++) {
                total = total - number[i];
            }
            System.out.println("total: " + total);

        }
    }

這是 output 的圖像:

[在此處輸入圖像描述 ][1]

這是一個使用流的單列(計算方式)。 取第一個元素 stream 數組跳過第一個元素並減去剩余的總和。

int[] arr = { 10, 8, 3, 1 };
int sum = arr[0] - IntStream.of(arr).skip(1).sum();
System.out.println(sum);

但無論您如何操作,根據值的大小和數組的長度,您都有可能發生int上溢或下溢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM