java - 命令失败,线程异常,数组索引超出范围 :1

标签 java

import java.io.*;

import java.util.*;

class Mean { 

    int n, a[] = new int[n] , sum = 0, avg;

    public int getMean() { 

        Scanner in = new Scanner(System.in);
        n = in.nextInt();

        for (int i = 1; i <= n; i++) { 
            a[i] = in.nextInt();
            sum = sum + a[i];
        }

        avg = sum / n;
        return avg;
    }

    public void displayMean() {
        System.out.println(avg);
    }

}


public class TestClass {

    public static void main(String[] args) { 
        Mean obj = new Mean();
        obj.getMean();

        obj.displayMean();

    }
}

测试用例 1: 5

1 3 4 5 6

预期输出: 3

最佳答案

读取n的值后,必须分配数组a。在您的代码中,n 初始化为 0 并且数组 a 的长度为零。即使稍后更改n的值,a的长度也不会改变。

定义行变为:

int n, a[] , sum = 0, avg;

你这样分配:

n = in.nextInt();
a = new int[n];

关于java - 命令失败,线程异常,数组索引超出范围 :1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53881905/

相关文章:

java - 从列表中的对象获取原始类

java - dockerfile运行java立即退出

java - 为什么我无法为该特定项目生成 javadoc?无错误信息

java - 如何拆分两个连续的括号?

java - 在Java中将数字存储到字符串数组中的问题

java - HashMap 对象 ~ myMap 是在公共(public) Java 方法中创建的

java - tomcat 5 java.lang.UnsatisfiedLinkError : tomcat\apache-tomcat-5. 5.36\bin\tcnative-1.dll AMD 64 位平台上的 : Can't load IA 32-bit . dll

java - gitignore 不会忽略已经提交的文件吗?

java - 正在运行 rmi 服务器,未找到类

java - 使用 HttpClient 在 Java 中进行 OAuth2 身份验证