2016-01-22 62 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)))