主服务器上的Java异常错误

主服务器上的Java异常错误,java,compiler-errors,Java,Compiler Errors,嗨,伙计们,我正在尝试制作一个普通的计算器(我现在正在学习java),除了一件事之外,一切都很好。 这是我的密码: package projects; import java.util.Scanner; public class average { public static void main (String[]args){ Scanner sc = new Scanner(System.in); System.out.println("/////

嗨,伙计们,我正在尝试制作一个普通的计算器(我现在正在学习java),除了一件事之外,一切都很好。 这是我的密码:

package projects;
import java.util.Scanner;

public class average {
    public static void main (String[]args){

        Scanner sc = new Scanner(System.in);

        System.out.println("/////////////////////////////////");
        System.out.println("///     Average Calculator     ///");
        System.out.println("/////////////////////////////////");
        System.out.println("How many numbers: ");
        int totalnumbers = sc.nextInt();
        int average = 0;
        int[] list;
        list = new int [totalnumbers];
        for(int X = 1 ; X <= totalnumbers ; X++){
            System.out.println("Please choose number " + X +": ");
            list[X] = sc.nextInt();
            average+=list[X];   


        }
        System.out.println("Your average is:" + (average/totalnumbers));

        sc.close();
    }

}
成套项目;
导入java.util.Scanner;
公共课平均分{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“////////”;
System.out.println(“///平均计算器//”);
System.out.println(“////////”;
System.out.println(“多少个数字:”);
int totalnumbers=sc.nextInt();
整数平均=0;
int[]列表;
列表=新整数[总数];

对于(int X=1;X而言,
totalnumbers
项的数组以索引0开始,以索引
totalnumbers-1结束

您的X从1迭代到
totalnumbers
,因此当X到达
totalnumbers

数组索引从0到N-1时出现异常。

当您尝试使用
X==totalnumbers
访问
list[X]
时,会发生运行时异常


更改此项:

for(int X = 1 ; X <= totalnumbers ; X++){
    System.out.println("Please choose number " + X +": ");
    list[X] = sc.nextInt();
    average+=list[X];

for(int X=1;X数组索引越界对您意味着什么?考虑一下循环中经过了多少次迭代关于您可能的下一个问题:您需要将一个除法操作数强制转换为一个双精度操作数以获得精确结果:
double precisesaverage=((double)sum)/totalNumbers;
。您不应该命名
average
一个不包含平均值的变量,而应该命名数字的总和。它清楚地表示为
ArrayIndexOutOfBoundsException
for(int X = 0 ; X < totalnumbers ; X++){
    System.out.println("Please choose number " + (X+1) +": ");
    list[X] = sc.nextInt();
    average+=list[X];