Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » In Lösung fehler? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen In Lösung fehler?
Beiträge zu diesem Thema Autor Datum
 In Lösung fehler? neuling96 01.02.2015 01:56
 RE: In Lösung fehler? eulerscheZahl 01.02.2015 08:03
 RE: In Lösung fehler? neuling96 01.02.2015 08:50
 RE: In Lösung fehler? neuling96 01.02.2015 09:00
 RE: In Lösung fehler? eulerscheZahl 01.02.2015 09:09
 RE: In Lösung fehler? neuling96 01.02.2015 09:33

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
neuling96
unregistriert
In Lösung fehler? Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich glaube die Lösung scheint nicht so zu stimmen??

bei b hätte ich einen einwand
public void turn(int i){

for( int y=0; y<= (i+1)/2; y++){
int temp=a[y];
a[y]= a[i-y];
a[i-y]= temp;
}
}

neuling96 hat diese Bilder (verkleinerte Versionen) angehängt:
Unbenannt1.jpg Unbenannt.jpg

01.02.2015 01:56
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die Musterlösung und dein Code machen fast das selbe.
MIt einem Unterschied: for( int y=0; y<= (i+1)/2; y++){
y geht zu weit, weshalb du bei ungeradem i die innersten Elemente doppelt tauschst.
Bsp.: i = 3
y = 0, 1, 2 wird getauscht mit 3, 2, 1, also erst 1<->2 und dann 2<->1.
Daher ist die Musterlösung korrekt, deine jedoch nicht.

__________________
Syntax Highlighting fürs Board (Link)
01.02.2015 08:03 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

so müsste es gehen?

public static void turn(int i){
for( int y=0; y<i/2; y++){
int temp=a[y];
a[y]= a[i-y];
a[i-y]= temp;
}
}
01.02.2015 08:50
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

for( int y=0; y<=i/2; y++)
01.02.2015 09:00
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Mit y<=i/2 tauschst du bei einer ungeraden Anzahl von Arrayelementen (=geradzahliges i) den mittleren Eintrag mit sich selbst. Das ist nicht falsch, aber unnötig. Das Minimum an Vertauschungen kriegst du mit y < (i+1)/2.

__________________
Syntax Highlighting fürs Board (Link)
01.02.2015 09:09 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
neuling96
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

stimmt smile

danke Wink
01.02.2015 09:33
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Praktische Informatik » In Lösung fehler?