-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 を取得しているようです

内部を調べる前に、配列の次元を超えていないことを確認する必要があります。(あなたの場合、mid-k と mid+k はゼロより小さいか x より大きい必要があります)

于 2013-01-18T17:37:14.883 に答える
1

あなたの例xでは5aです。5つの要素の配列です。midは 3 です。

kfor ループでは、 = 2の場合に反復が発生するため、 mid+k= 5 になります。配列には要素 0 から 4 しかないため、ArrayIndexOutOfBoundsException.

于 2013-01-18T17:39:29.947 に答える