2

次のように並べ替えの問題を書きましたが、ArrayIndexOutOfBounds例外が発生しています。私はそれを理解することができません。助けてください。

System.out.println("Enter the total no of digits to sort:-  ");

n = Integer.parseInt(br.readLine());
x = new int[n];

System.out.println("Enter the elements:- ");

for(i = 0; i < n; i++)
    x[i] = Integer.parseInt(br.readLine());

for(i = 0; i < n; i++)
{
    for(j = 0; j < n; j++)
    {
        if(x[j] > x[j+1])  //ascending order
        {
            temp = x[j];
            x[j] = x[j+1];
            x[j+1] = temp;
        }
    }
}
4

2 に答える 2

4

jまで上がるのでnj+1は範囲外です。に変更する必要があります

for(j=0;j<n-1;j++)

そうすることで、それx[j+1]が範囲内にあることを確認できます。

于 2013-05-01T12:59:38.523 に答える
0

エラーはここにあります:

if(x[j] > x[j+1]) {
 ....

j+1等しいからn

次の変更を行います。

 for(j=0;j + 1<n;j++) {
  ...
于 2013-05-01T13:00:00.837 に答える