maximalwertaufgabe
-
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
