它打印所有偶数,但只打印奇数13和11.不是3或5.有谁知道我做错了什么?提前致谢。
public class ReadjustingArray { public static void main(String [] args){
int[]A={13,3,4,6,8,5,10,11};
int temp=0;
for (int i=0; i< A.length; i++){
if (A[i] % 2 ==0){
temp=A[i];
A[i-1] = A[i];
temp=A[i];
System.out.print(A[i] + " ");
}
}
for (int j=0; j< A.length; j++){
if (A[j] % 2 !=0){
System.out.print(A[j] + " ");
}
}
}
}
答案 0 :(得分:2)
不要使用第一个循环修改数组,然后第二个循环将按预期工作。或者,在Java 8+中,您可以使用IntStream
和filter
之类的
int[] A = { 13, 3, 4, 6, 8, 5, 10, 11 };
IntStream.of(A).filter(x -> x % 2 == 0)
.forEachOrdered(x -> System.out.printf("%d ", x));
IntStream.of(A).filter(x -> x % 2 != 0)
.forEachOrdered(x -> System.out.printf("%d ", x));
System.out.println(); // <-- Adds a new line (and an implicit flush)
答案 1 :(得分:2)
这可以帮到你。
public static void main(String[] args) {
int[] A = { 13, 3, 4, 6, 8, 5, 10, 11 };
for (int i : A) {
if (isEven(i)) {
System.out.println(i + " is even");
} else {
System.out.println(i + " is odd");
}
}
}
static boolean isEven(int number) {
if ((number % 2) == 0) {
return true;
}
return false;
}
答案 2 :(得分:0)
无需修改数组。只需按照打印平均值的方式打印赔率。使用他们相应的比较逻辑。