「已注销」 2022-11-25 09:08 采纳率: 75%
浏览 13
已结题

第一行输入评委数,第二行输入每个评委的分数,出掉最大值和最小值,输出平均值保留两位小数,代码错在哪里

6
1 1 1 1 1 1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6
at m.Main11.main(Main11.java:8)

Process finished with exit code 1

img

img

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-11-25 09:12
    关注

    这错误意思是数组长度是6,但你程序中给出的下标有6,越界了
    主要是你main函数里输入有问题,arr[n] = sc.nextDouble()这句越界了,这时n是6
    只需要在主函数中循环输入值就可以了,getMin和getMax函数中只需要与数组元素进行比较,不要再输入了啊
    修改如下:

    main函数:
    double arr[] = new double[n];
    for(int i=0;i<6;i++)
        arr[i] = sc.nextDouble();
    
    public static double getMax(double[] arr)
    {
        double max = arr[0];
        for(int i=1;i<6;i++)
            if(arr[i] > max)
               max = arr[i];
        return max;
    }
    
    public static double getMin(double[] arr)
    {
        double min= arr[0];
        for(int i=1;i<6;i++)
            if(arr[i] < min)
               min = arr[i];
        return min;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 修改了问题 11月25日
  • 创建了问题 11月25日