2016-12-06 2 views
-2

ich einen Auftrag haben, fragen sie mich zu den ungeraden Zahlen ein Array aus den geraden Zahlen wie diese neu zu ordnen:Re-Arrangieren Array

Sample Output: 
    Please enter array of 5 integers: 
    1 2 5 6 4 
    the array after re-arranging: 
    2 6 4 1 5 

Ich konnte es nicht tun "Ich verwende Methoden kippe " Kann mir jemand helfen ? dies ist mein Code:

public static void evenOdd(int[] arr){ 
    int i=0; 
    int arr1[] = new int[5]; 
    for (i=0;i<5;i++) 
    { 
     if (arr[i]%2==0) 
      arr1[i]=arr[i]; 
    } 
    for (i=0;i<5;i++){ 
      if(arr[i]%2!=0) 
       arr1[i]=arr[i]; 
    }//end for 
    for(i=0;i<5;i++) 
    System.out.print(arr1[i]+" "); 
    System.out.println(""); 
}//end method 

DANKE

+3

nicht bevor Sie Ihren Code formatieren – manonthemat

+0

Was meinen Sie mit "Ich kann keine Methoden verwenden"? Weißt du nicht, wie man sie benutzt oder darfst du sie nicht für deine Aufgabe benutzen? –

+0

@DaveK. Ich meine, ich kann keine Methoden für das Array verwenden oder etwas, das ich selbst in der Aufgabe machen muss. – SOS

Antwort

1

Das Problem ist, wenn man sie in das neue Array hinzufügen Sie sie in der gleichen Position setzen: i. Verwenden Sie ein separates int, um zu ermitteln, auf welchem ​​Teil des Index Sie sich befinden.

public static void evenOdd(int[] arr){ 
    int i=0; 
    int count = 0; 
    int arr1[] = new int[5]; 
    for (i=0;i<5;i++) { 
     if (arr[i]%2==0) { 
      arr1[count]=arr[i]; 
      count++; 
     } 
    } 
    for (i=0;i<5;i++){ 
     if(arr[i]%2!=0) { 
      arr1[count]=arr[i]; 
      count++; 
     } 
    }//end for 
    for(i=0; i < 5; i++) { 
     System.out.print(arr1[i]+"\n"); 
    } 
}//end method 
+0

danke das funktioniert :) – SOS