打印数组中5个元素的总和

时间:2016-01-03 15:13:04

标签: java arrays

当我尝试在java中运行以下代码时,它告诉了界限,但程序在逻辑上是正确的:

import java.io.*;
class array2
{
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int a[]=new int[5];
        int i,sum=0;

        for(i=1;i<=5;i++) { 
            System.out.println("enter the numbers");
            a[i]=sc.nextInt();
        }

        for(i=1;i<=5;i++) {
            sum=sum+a[i];
        }

        System.out.println(+sum);
    }
}

3 个答案:

答案 0 :(得分:1)

更改

for(i = 1; i <= 5; i++)
...
System.out.println(+sum);

for(i = 0; i < 5; i++)
...
System.out.println(sum);

从第一个元素开始,0索引。

答案 1 :(得分:1)

您创建一个数组,这意味着它的位置从0开始,您从1开始并尝试运行5次。尝试从0开始:

import java.io.*;
    class array2
    {
    public static void main(String args[])
    {
    Scanner sc=new Scanner(System.in);
    int a[]=new int[5];
    int i,sum=0;
    for(i = 0; i < 5; i++)
    { 
    System.out.println("enter the numbers");
    a[i]=sc.nextInt();
    }
    for(i = 0; i < 5; i++)
    {
    sum=sum+a[i];
    }
    System.out.println(+sum);
    }
    }

答案 2 :(得分:1)

数组从0开始到length - 1结束,但你不需要任何数组。你可以做到

Scanner sc=new Scanner(System.in);
long sum = IntStream.range(0, 5)
                    .map(i -> {
                         System.out.println("enter the numbers");
                         return sc.nextInt();
                     })
                    .sum();
System.out.println("sum: " + sum);