Veröffentlicht 4. Februar 201312 j public class Main { public static void main(String args[]) { int[] cube={ 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4, 5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6 }; int[] zwischenspeicher={ 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4, 5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6 }; //erstes Mal Überschreiben cube[0]=zwischenspeicher[2]; cube[1]=zwischenspeicher[5]; cube[2]=zwischenspeicher[8]; cube[3]=zwischenspeicher[1]; cube[4]=zwischenspeicher[4]; cube[5]=zwischenspeicher[7]; cube[6]=zwischenspeicher[0]; cube[7]=zwischenspeicher[3]; cube[8]=zwischenspeicher[6]; cube[9]=zwischenspeicher[38]; cube[10]=zwischenspeicher[41]; System.out.println(zwischenspeicher[11]); //Ausgabe: 2 cube[11]=zwischenspeicher[44]; System.out.println(zwischenspeicher[11]); //Ausgabe: 5 cube[33]=zwischenspeicher[45]; cube[34]=zwischenspeicher[48]; cube[35]=zwischenspeicher[51]; cube[38]=zwischenspeicher[35]; cube[41]=zwischenspeicher[34]; cube[44]=zwischenspeicher[33]; cube[45]=zwischenspeicher[11]; cube[48]=zwischenspeicher[10]; cube[51]=zwischenspeicher[9]; //Zweites Mal überschreiben cube[0]=zwischenspeicher[6]; cube[1]=zwischenspeicher[3]; cube[2]=zwischenspeicher[0]; cube[3]=zwischenspeicher[7]; cube[4]=zwischenspeicher[4]; cube[5]=zwischenspeicher[1]; cube[6]=zwischenspeicher[8]; cube[7]=zwischenspeicher[5]; cube[8]=zwischenspeicher[2]; cube[9]=zwischenspeicher[51]; cube[10]=zwischenspeicher[48]; cube[11]=zwischenspeicher[45]; cube[33]=zwischenspeicher[44]; cube[34]=zwischenspeicher[41]; cube[35]=zwischenspeicher[38]; cube[38]=zwischenspeicher[9]; cube[41]=zwischenspeicher[10]; cube[44]=zwischenspeicher[11]; cube[45]=zwischenspeicher[33]; cube[48]=zwischenspeicher[34]; cube[51]=zwischenspeicher[35]; } } Also ich habe zwei gleiche int-Arrays mit je 54 Stellen. Bei diesen will ich 25 Stellen Überschreiben und dannach wieder zurück schreiben (Ursprünglich 2 Methoden in einer seperaten Klasse, der übersichtshalber aber in die Main-Methode geschrieben) Nun habe ich dieses Problem System.out.println(zwischenspeicher[11]); //Ausgabe: 2 cube[11]=zwischenspeicher[44]; System.out.println(zwischenspeicher[11]); //Ausgabe: 5 Und ich weiß nicht wieso es auftaucht. Am Ende sollte eig wieder die Ursprungsarray vorhanden sein, aber dies kommt raus: 111111111 555222222 333333333 444444666 555555555 666666666 Nun die Preisfrage was mache ich falsch?
4. Februar 201312 j Autor Ok, jetzt bin ich vollkommen verwirrt Was passiert wenn du dir den Würfel vor und nach dem Überschreiben ausgeben lässt? int i=0; for (int element : cube){ System.out.print(element); i++; if(i==9||i==18||i==27||i==36||i==45||i==54) { System.out.println(" "); } }
4. Februar 201312 j Ok, jetzt bin ich vollkommen verwirrtHast du deinen Beispielcode denn mal bei dir ausprobiert? Was passiert wenn du dir den Würfel vor und nach dem Überschreiben ausgeben lässt? 111111111 222222222 333333333 444444444 555555555 666666666 2 2 111111111 555222222 333333333 444444666 554554554 266266266 111111111 666222222 333333333 444444555 552552552 466466466[/CODE]
4. Februar 201312 j Autor 111111111 222222222 333333333 444444444 555555555 666666666 2 2 111111111 555222222 333333333 444444666 556556556 566566566 111111111 555222222 333333333 444444666 555555555 666666666 Ja ich habe den Code Ausprobiert und das oben stehende rausbekommen...
4. Februar 201312 j Ja ich habe den Code Ausprobiert und das oben stehende rausbekommen... Also reproduziert dein Beispielcode zumindest das 2-5-Problem nicht mehr. Was immer du also geändert hast, den Fehler hast du mitgeändert. Da sich die restliche Ausgabe ja nun bei uns unterscheidet: Was ist denn die erwartete Ausgabe?
4. Februar 201312 j Autor 111111111 222222222 333333333 444444444 555555555 666666666 Eigentlich wieder der Ursprung
4. Februar 201312 j Eigentlich wieder der UrsprungDas kann nicht sein, da hast du einen Logikfehler drin. Beispiel: cube[10]=zwischenspeicher[48]; In cube[10] steht zu Beginn eine 2, in zwischenspeicher[48] steht die ganze Zeit über eine 6. Diese Anweisung schreibt eine 6 in cube[10], da kannst du nicht erwarten, dass da eine 2 erscheint.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.