2016-05-01 9 views
1

Ich habe auf CodingBat geübt, als ich auf dieses Problem stieß, das ich nicht richtig verstehen konnte. Bei einem Array positiver Ganzzahlen muss ich ein Array mit der Länge "count" erstellen, das die ersten geraden Zahlen aus dem ursprünglichen Array enthält. Das ursprüngliche Array enthält mindestens "Anzahl" gerade Zahlen. Mein Code ist unten, obwohl ich weiß, dass alles unter der ersten if-Anweisung nicht funktioniert und die "counter" -Variable im Grunde nutzlos ist.Wie finde ich den nächsten verfügbaren Slot in einem Array?

public int[] copyEvens(int[] nums, int count) { 
    int counter = 0; 
    int[] countArr = new int [count]; 
    for (int i = 0; i < nums.length; i++) { 
    if (nums[i] % 2 == 0) { 
     //what to put here? 
    } 
    } 
    return countArr; 
} 

jede Hilfe würde sehr geschätzt werden.

+0

wenn es eine 0 ist, bedeutet das seine verfügbaren – DarkV1

+0

Ich sehe kein Problem in einem Code – theDima

Antwort

1

Schulzeug ... oder?

+0

eigentlich, nein, es ist http://codingbat.com/prob/p134174 –

+0

und es hat funktioniert! Aber wie? –

+0

Fixed it ... Ihre Ausgangsbedingung war falsch ,,, Es musste sein (counter Meola

2

Das folgende ist falsch:

if (i == count) { 

Dies kontrolliert die Position in der Eingabe Array, anstatt die Position in der Ausgabe Array, gegen count.

0

Ich denke, Sie sollten den Zähler vergleichen ... der bei 0 beginnt .. so müssen Sie 1 hinzufügen, da ich ziemlich sicher bin, zählt nicht 0 als Index enthalten.

So

if((counter+1) ==count) 

sollte das Original ersetzen.

Verwandte Themen