java中数组元素的总和

切边机

我想做数组元素的总和。我做了这个,但我看不出我的错误是什么?提前致谢。

输入格式

第一行包含一个整数 N,表示数组的大小。(例如 5) 下一行包含以空格分隔的整数,表示数组的元素。(例如 1000000001 1000000002 1000000003 1000000004 1000000005)

尝试以下不同的方式

import java.io.BufferedReader;
import java.io.InputStreamReader;

//import for Scanner and other utility classes
import java.util.*;


public class TestClass {
    public static void main(String args[] ) throws Exception {
        int sumofArray = 0;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter Size of Array :- ");
        int totalNumbers = Integer.parseInt(br.readLine());
        System.out.println("totalNumbers=> " + totalNumbers);
        int []arrayEle = new int[totalNumbers];
        System.out.println("Enter Array element :- ");
        String arrEle = br.readLine();
        System.out.println("Array Elements Are:-"+arrEle);
        String []myArray = arrEle.split(" ",totalNumbers+1);
        for(int i = 0; i < totalNumbers; i++) {
            arrayEle[i] = Integer.parseInt(myArray[i]);
            System.out.println(arrayEle[i]);
            //sumofArray = sumofArray + arrayEle[i];
            //System.out.println("i= "+i+" arrayEle[i]= "+arrayEle[i] + " sumofArray= "+sumofArray);
        }
        for(int i = 0; i < totalNumbers; i++) 
            sumofArray += arrayEle[i];
        System.out.println("Sum of Array Elements is:-  "+sumofArray);
        //Scanner s = new Scanner(System.in);
        //String name = s.nextLine();

    }
}

但无法理解,为什么我会以这个结果结束

Enter Size of Array :- 
totalNumbers=> 5
Enter Array element :- 
Array Elements Are:-1000000001 1000000002 1000000003 1000000004 1000000005
1000000001
1000000002
1000000003
1000000004
1000000005
Sum of Array Elements is:-  705032719
bvsh

您的 sumofArray 变量是 int。当您将这 5 个数字相加时,整数变量无法存储该值。java中int值的上限是2147483647。因此,您得到了意想不到的答案。如果将 sumofArray 的数据类型更改为 long,它将起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章