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