-3

在此处输入图像描述我正在尝试解决一个程序,一次又一次发生异常我不知道为什么在这里帮助我是我的代码

import java.util.*;
public class Fashion
{
    public static void main(String args[])
    {
    int sum=0;
    Scanner in=new Scanner(System.in);
    System.out.println("enter the number of judges");
    int x=in.nextInt();
    int a[]=new int[x];
    if((x<20)&&(x%2==1))
       {
       System.out.println("score given by judges");
       for(int i=0;i<x;i++)
         {
         a[i]=in.nextInt();
         }
       }
    int mid=(1+x)/2;
       for(int k=0;k<mid;k++)
       {
        if(a[mid+k]==a[mid-k])    //exception here why 
         {
         sum=sum+a[mid+k];
         }
       }
    System.out.println("the number get by the contestant is "+sum);
    }
}
4

2 回答 2

2

看起来您可能会收到 Maroun 在他的评论中回答的 ArrayIndexOutOfBoundsException

在尝试查看 a 之前,您应该检查您是否没有超出数组维度。(在您的情况下,mid-k 和 mid+k 应该小于零或大于 x)

于 2013-01-18T17:37:14.883 回答
1

在您的示例x中是 5.a是一个由 5 个元素组成的数组。mid是 3。

在你的 for 循环中,当 = 2 时会有一次迭代k,所以mid+k= 5。你的数组只有元素 0 到 4,所以你得到一个ArrayIndexOutOfBoundsException.

于 2013-01-18T17:39:29.947 回答