maximalwertaufgabe
-
okay, so weit war ich auch ungefähr.. aber nur ungefähr.. hab noch nen kleinen fehler bei mir gefunden..
aber trotzdem komm ich mit dem tausch der zahlen nicht klar..
da bräucht ich mal nen denkanstoß..
-
Da brauchst du im allgemeinen eine temporäre variable.
tmp = a; a = b; b = tmp;Kurt
-
ZuK schrieb:
Da brauchst du im allgemeinen eine temporäre variable.
tmp = a; a = b; b = tmp;Kurt
nö geht auch ohne weitere variable, ist übrigens speicherverschwendung
-
mcu schrieb:
ZuK schrieb:
Da brauchst du im allgemeinen eine temporäre variable.
tmp = a; a = b; b = tmp;Kurt
nö geht auch ohne weitere variable, ist übrigens speicherverschwendung
naja -wie man's nimmt -das eine ist 'speicherverschwendung' (
) waehrend der laufzeit -und das andere halt in der exe
-
Zum tauschen von zwei Variablen verwenden wir doch std::swap

-
ok dann ohne temp-variable
a ^= b; b ^= a; a ^= b;Kurt
-
mach das mal mit double.

Der Typ der Variablen war hier nicht spezifiziert.
-
Braunstein schrieb:
mach das mal mit double.

Der Typ der Variablen war hier nicht spezifiziert.Mit float würd ichs so machen ( geht aber nur auf IA32 )
(*(unsigned long*)&a) ^= (*(unsigned long*)&b); (*(unsigned long*)&b) ^= (*(unsigned long*)&a); (*(unsigned long*)&a) ^= (*(unsigned long*)&b);
Kurt
-
ZuK schrieb:
ok dann ohne temp-variable
a ^= b; b ^= a; a ^= b;Kurt
man lernt doch nie aus

-
Man muss allerdings dazu sagen, dass der Dreieckstausch auf x86 schneller ist als der XOR-Trick.
-
ist aber trotzdem interessant
