-1

我正在尝试计算数组中的反转次数。当它应该是 4 时,我得到了 3 的结果。这是我的代码。

 int[] array1 = new int[5];
 array1[0] = 3;
 array1[1] = 7;
 array1[2] = 10;
 array1[3] = 6;
 array1[4] = 4;

 int count = 0;
for(int i =0;i<array1.length;i++){

    for(int j =i+1;j<array1.length;j++){

        if(array1[i]> array1[j] ){

        count++;
    }
}
}
System.out.println(count);

有谁知道它为什么这样做?谢谢

4

2 回答 2

0

删除 j++ 和 i++。还将 j 的初始位置更改为 i+1,而不是 0。

int[] array1 = new int[5];
array1[0] = 3;
array1[1] = 7;
array1[2] = 10;
array1[3] = 6;
array1[4] = 4;

int count = 0;
for(int i =0;i<array1.length;i++){

    for(int j=i+1;j<array1.length;j++){

       if(array1[i]> array1[j] ){
          count++;
       }

    }
 }
 System.out.println(count);
于 2015-11-08T22:39:05.967 回答
0

和索引增量不应在循环体中重复,i++因为它们已经存在于循环条件的同一行中。j++forfor

于 2015-11-08T22:27:12.963 回答