Java 排序中边界的数组索引
我已经将排序问题写了如下,但是我得到了一个Java 排序中边界的数组索引,java,indexoutofboundsexception,Java,Indexoutofboundsexception,我已经将排序问题写了如下,但是我得到了一个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++)
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;
}
}
}
System.out.println(“输入要排序的总位数:-”);
n=Integer.parseInt(br.readLine());
x=新整数[n];
System.out.println(“输入元素:-”);
对于(i=0;ix[j+1])//升序
{
温度=x[j];
x[j]=x[j+1];
x[j+1]=温度;
}
}
}
由于j
上升到n
,j+1
超出了范围。你需要把它改成
for(j=0;j<n-1;j++)
for(j=0;j由于j
上升到n
,j+1
超出范围。您需要将其更改为
for(j=0;j<n-1;j++)
(j=0;j的错误如下:
if(x[j] > x[j+1]) {
....
因为j+1
等于n
进行以下更改:
for(j=0;j + 1<n;j++) {
...
对于(j=0;j+1错误如下:
if(x[j] > x[j+1]) {
....
因为j+1
等于n
进行以下更改:
for(j=0;j + 1<n;j++) {
...
for(j=0;j+1那么x[]的大小是多少?x的大小在运行时初始化。是的,我的问题不再相关,因为您的更新提供了答案。那么x[]的大小是多少?x的大小在运行时初始化。是的,我的问题不再相关,因为您的更新提供了答案。不,j+1
在最后一个循环上是n
。虽然在设置int[n]
时,最后一个索引是n-1
。因此int[n]
或其在最后一个循环上的等价物int[j+1]
将不绑定。例如:int[4]创建键{0,1,2,3}Nop,j+1
在最后一个循环上是n
。虽然在设置int[n]
时,最后一个索引是n-1
。因此int[n]
或其在最后一个循环int[j+1]
上的等价项将不绑定。例如:int[4]创建键{0,1,2,3}我在netbeans n gt中执行了相同的程序,错误是…“java.lang.NoClassDefFoundError:javaapplication3/Main异常在线程“Main”java Result:1中…”。此plz上的帮助。@j这可能是netbeans项目配置的问题。下面是一个错误。我在netbeans n gt中执行了相同的程序,错误是。。。“java.lang.NoClassDefFoundError:javaapplication3/Main异常在线程“Main”java结果:1“……中。有关此plz的帮助。@jhe这可能是netbeans项目配置的问题。下面是一个示例。