In Lösung fehler? |
01.02.2015, 01:56 | Auf diesen Beitrag antworten » |
neuling96 | In Lösung fehler? 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; } } |
|
|
01.02.2015, 08:03 | Auf diesen Beitrag antworten » |
eulerscheZahl | 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. |
01.02.2015, 08:50 | Auf diesen Beitrag antworten » |
neuling96 | 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, 09:00 | Auf diesen Beitrag antworten » |
neuling96 | for( int y=0; y<=i/2; y++) |
Anzeige | |
|
|
01.02.2015, 09:09 | Auf diesen Beitrag antworten » |
eulerscheZahl | 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. |
01.02.2015, 09:33 | Auf diesen Beitrag antworten » |
neuling96 | stimmt danke |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|