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并且没有看到任何变化。
我需要改变什么?谢谢。
答案 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