我已经按如下方式编写了排序问题,但我得到了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;
}
}
}
答案 0 :(得分:4)
由于j
达到n
,j+1
超出范围。您需要将其更改为
for(j=0;j<n-1;j++)
这样做可以确保x[j+1]
在范围内。
答案 1 :(得分:0)
错误在这里:
if(x[j] > x[j+1]) {
....
因为j+1
等于n
进行此更改:
for(j=0;j + 1<n;j++) {
...