2016-01-22 40 views
-1

我需要将一个数组转换为两个单独的数组,将赔率和均值分解。我到目前为止,但我的输出是不正确的。如果有人能帮我解决这个问题,我会非常感激,因为这个周末结束了。Evens And Odds Array

import java.util.Arrays; 
import java.util.Scanner; 

public class EvensAndOdds 
{ 
private static int countEm(int[] array) 
{ 
    int numOdd = 0; 
    for(int i=0; i< array.length; i++) 
     if(array[i] % 2 == 1) 
      numOdd ++; 

    return numOdd; 
} 
public static int[] getAllEvens(int[] array) 
{ 
    int x = 0; 
    int[] evens = new int[array.length - countEm(array)]; 
    for(int i=0; i<array.length; i++) 
    { 
     if(array[i]%2==0) 
     { 
      evens[x] = array[i]; 
      x ++; 
     } 
    } 
    return evens; 
    } 
public static int[] getAllOdds(int[] array) 
{ 
    int y = 0; 
    int[] odds = new int[countEm(array)]; 
    for (int i = 0; i < array.length; i++) 
    { 
     if (array[i] %2 == 1) 
     { 
     odds[y] = array[i]; 
     y++; 
     } 
    } 
    return odds; 
} 

public static void main(String[] args) 
{ 
    int[] input = {2,4,6,8,10,12,14}; 

    System.out.println(Arrays.toString(input)); 
    System.out.println("odds = " + EvensAndOdds.getAllOdds(input)); 
    System.out.println("evens =" + EvensAndOdds.getAllEvens(input)); 
} 
} 

输出出来为:

[2, 4, 6, 8, 10, 12, 14] 
odds = [[email protected] 
evens =[[email protected] 
+4

的System.out.println( “赔率=” + Arrays.toString(EvensAndOdds.getAllOdds(输入))); –

+0

它目前正在打印数组的内存地址,而不是内容,因为您没有使用Arrays.toString。你真的应该在你的输入数组中输入一个奇数,这样你就可以判断它是否真的找到了奇数。 –

+2

@AndrewWilliamson:这不是内存地址,但也不是有用的信息。 :-) –

回答

0
Arrays.toString(EvensAndOdds.getAllOdds(input)))