[英]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.