Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Java Array neu sortieren, schlägt fehl

Empfohlene Antworten

Veröffentlicht

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?

  • 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(" ");

		      }

		  }

Ok, jetzt bin ich vollkommen verwirrt
Hast 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]

  • 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...

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?

Eigentlich wieder der Ursprung
Das 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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.