为什么我没有得到正确的输出?

Why am I not getting the right output?

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

 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);

有人知道为什么要这样做吗?谢谢

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

删除 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);