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

时间:2015-11-08 22:22:44

标签: java arrays loops inversion

我正在尝试计算数组中的反转次数。当它应该是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);

任何人都知道为什么这样做?感谢

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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);