如何搜索数组中的奇数索引元素

时间:2014-09-23 06:10:10

标签: java arrays

int modeOdd = 0;

System.out.println("Occurence of all existing ODD digits --");

  for (int i = 1;  i < ary.length; i += 2) {  // This prints the array element at the odd indices 
      if (ary[i] > 0) {
      System.out.println("Digit " + i + " : "  + ary[i]);
      }
    }

  System.out.println( "\nthe odd digit (s) that has/have the "
          + "higest occurence-");



for (int i = 1; i < ary.length; i += 2){
    int newNumber = ary[i];
    if (newNumber > ary[modeOdd] ) && ( i % 2 != 0 )){
        modeOdd = i;
    }
} 
System.out.println(modeOdd);


}

代码的第一部分工作并以奇数索引打印数组元素。但是,代码的第二部分是找到我所有数组元素的模式。我不明白为什么它这样做,因为我在索引i处开始并将其递增2.我试过模数2不能等于0并且没有看到任何变化。

我需要改变什么?谢谢。

2 个答案:

答案 0 :(得分:3)

错误就在这一行:

int modeOdd = 0;

你应该声明modeOdd = 1,因为你现在声明它为0,这不是奇怪的,所以如果ary[0]包含的值大于奇数索引中的任何值,它将永远不会改变。

注意:如果数组的长度小于2

,请注意

答案 1 :(得分:0)

public class Test {
    public static void main(String[] args) {
        int modeOdd = 1;

        int[] ary = new int[] { 2, 3, 4, 5, 6, 78, 9, 3 };
        System.out.println("Occurence of all existing ODD digits --");

        for (int i = 1 ; i < ary.length ; i += 2) {  // This prints the array element at the odd indices
            if (ary[i] > 0) {
                System.out.println("Digit " + i + " : " + ary[i]);
            }
        }

        System.out.println("\nthe odd digit (s) that has/have the " + "higest occurence-");

        for (int i = 1 ; i < ary.length ; i += 2) {
            int newNumber = ary[i];
            if (newNumber > ary[modeOdd] && (i % 2 != 0)) {
                modeOdd = i;
            }
        }
        System.out.println(modeOdd);

    }
}

<强>输出

Occurence of all existing ODD digits --
Digit 1 : 3
Digit 3 : 5
Digit 5 : 78
Digit 7 : 3

the odd digit (s) that has/have the higest occurence-
5