Frage von javaline, 50

Hallo zusammen, ich brauch etwas Hilfe beim programmieren in Java, wäre super lieb..?

Kann mir jemand sagen, wie ich eine for-Schleife vervollständige, welche die Werte eines int-Arrays in umgekehrter Reihenfolge im selben Array speichert. Z.B. aus {1,2,3,4,5} wird {5,4,3,2,1}. Ohne dass ich Hilfs Arrays benutze..?

Hier habe ich noch den Ansatz aber mehr auch nicht :(

int array[] ={1,2,3,4,5,6,7,8};

for(int i = 0, b = array.length; i < b;i++,b--){

vielen Dank schonmal für die Hilfe..

Antwort
von Willibergi, 20

Die theoretische Vorangehensweise:

Du gehst in einer Schleife die ganzzahlige, abgerundete Hälfte der Einträge des Array durch und vertauschst diese immer mit dem Eintrag, der an der Stelle der Differenz der Länge des Arrays und des aktuellen Eintrags liegt.

Also bei einem Array arr der Länge 5:

arr[0] wird mit arr[5 - 0] vertauscht

arr[1] wird mit arr[5 - 1] vertauscht

arr[2] wird mit arr[5 - 2] vertauscht

Das wäre imho die einfachste Lösung. ^^

Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach.

LG Willibergi 

Antwort
von triopasi, 40

Ich geb dir erstmal nen Tipp: Vertausche die Zahlen!

[n=höchster index im Array]

1. Durchlauf: 0 tauschen mit n
2. Druchlauf 1 tauschen mit n-1
usw..

Antwort
von Odorwyn, 30

Versuchs mit einer platzhalter-variabel :)

Die hat dann einfach immer den höchsten/niedrigsten Wert. Dann vergleichst du und tauscht solange hin und her bis es passt :)

Antwort
von LeCux, 28

for (int i=array.length-1; i > 0; i--) {

    syso array[i]

}

Du zählst einfach vom letzten Element zum Ersten. Im Echten Leben (tm):

java.util.Collections.reverse()

Kommentar von LeCux ,
for(int i = 0; i < array.length / 2; i++)
{
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
Kommentar von LeCux ,

War eben leider zu schnell - aber es ist recht einfach, Du gehst bis zur Hälte der Länge des Arrays und tauschst die beiden Elemente an Position i von vorn und Position i von hinten.

Kommentar von javaline ,

ich danke euch, es hat funktioniert und ich habe es sogar verstanden .. :D mich irritiert nur dieses b -.- bei meiner aufgabenstellung..

Keine passende Antwort gefunden?

Fragen Sie die Community